Biblioteka hpke-js do szyfrowania hybrydowego (HPKE) w wersjach przed 1.7.5 zawiera race condition w publicznym API SenderContext Seal(), który pozwala na wielokrotne użycie tego samego nonce AEAD. Prowadzi to do całkowitej utraty poufności i integralności szyfrowanych wiadomości.
▸ Pokaż oryginał (EN)
hpke-js is a Hybrid Public Key Encryption (HPKE) module built on top of Web Cryptography API. Prior to version 1.7.5, the public SenderContext Seal() API has a race condition which allows for the same AEAD nonce to be re-used for multiple Seal() calls. This can lead to complete loss of Confidentiality and Integrity of the produced messages. This issue has been patched in version 1.7.5.
CWE-323 opisuje ponowne użycie nonce w kontekście kryptograficznym jako krytyczny błąd bezpieczeństwa. W przypadku tej podatności, współbieżne wywołania metody Seal() mogą ze względu na race condition operować na tym samym nonce AEAD. Powtórne użycie nonce przy tym samym kluczu w trybach AEAD (np. AES-GCM) całkowicie kompromituje zarówno poufność, jak i integralność — atakujący może odzyskać klucz szyfrowania strumieniowego lub sfałszować wiadomości. Błąd dotyczy warstwy kodu biblioteki budowanej na Web Cryptography API.
Atakujący lub nieautoryzowany obserwator może doprowadzić do całkowitego ujawnienia treści szyfrowanych wiadomości oraz możliwości ich sfałszowania bez wykrycia przez mechanizmy integralności AEAD.
Należy zaktualizować hpke-js do wersji 1.7.5 lub nowszej, w której błąd został naprawiony (commit 94a767c9b9f37ce48d5cd86f7017d8cacd294aaf). Zastosowanie patcha dostępnego w repozytorium GitHub projektu.
Biblioteka hpke-js w wersjach przed 1.7.5 (pakiet core, plik packages/core/src/senderContext.ts)
Podatność zgłoszona i naprawiona przez zespół projektu hpke-js; szczegóły opublikowane w ramach GitHub Security Advisory GHSA-73g8-5h73-26h4.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N