CVE-2024-14041
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
W bibliotece Bouncy Castle dla Javy (wersje od 1.73 do 1.78) trzy funkcje ML-KEM (CRYSTALS-Kyber) dzielą współczynniki wielomianów przez moduł q, co umożliwia atakującemu mierzącemu czas dużej liczby deszyfrowań z tym samym kluczem prywatnym odzyskanie tego klucza. Dotyczy to funkcji Poly.toMsg (KyberSlash1) oraz funkcji kompresji szyfrogramu (KyberSlash2).
Ocena ryzyka
Atakujący może odzyskać długoterminowy klucz prywatny, co pozwoli na deszyfrowanie wszystkich wcześniej i później przechwyconych wiadomości, naruszając poufność komunikacji.
Rekomendacja
Zaleca się natychmiastową aktualizację biblioteki Bouncy Castle do wersji 1.78 lub nowszej, która usuwa tę podatność. Należy również rozważyć użycie alternatywnych implementacji Kyber, które nie są podatne na ataki timingowe.
Inne podatności w Bouncy Castle
Zobacz wszystkie- CVE-2026-58062Krytyczne
W Bouncy Castle dla Java przed wersją 1.85, odpowiedź OCSP zszyta (Stapled OCSP) jest akceptowana bez powiązania ze sprawdzanym certyfikatem. Problem dotyczy również wersji LTS przed 2.73.12 oraz FIPS przed 2.0.2 (seria 2.0.X) i 2.1.3 (seria 2.1.X).
- CVE-2026-8763Krytyczne
W Bouncy Castle dla Java przed wersją 1.85, ograniczenia nazw (Name Constraints) mogą być ominięte poprzez kropkę na końcu w rfc822Name i URI. Problem dotyczy również wersji LTS przed 2.73.12 oraz FIPS przed odpowiednimi wersjami.
- CVE-2026-59650Krytyczne
W Bouncy Castle dla Java przed wersją 1.85, uzgadnianie klucza Diffie-Hellmana MTI/A0 potęguje niezweryfikowaną wartość od partnera. Problem dotyczy również wersji LTS przed 2.73.12.
- CVE-2026-14682Wysokie
W Bouncy Castle dla Java przed wersją 1.85, możliwe jest wyczerpanie pamięci (OOM) z powodu nieograniczonej alokacji przy odczycie o określonej długości. Problem dotyczy również wersji LTS i FIPS.
- CVE-2026-13586Wysokie
W Bouncy Castle dla Java przed wersją 1.85, ograniczenie liczby iteracji KDF dla MAC i deszyfrowania worków PKCS#12 może prowadzić do DoS. Problem dotyczy również LTS przed 2.73.12 i BC-FJA przed odpowiednimi wersjami.
- CVE-2026-13506Wysokie
W Bouncy Castle dla Java przed wersją 1.85, leniwa sekwencja ASN.1 (Lazy ASN.1 sequence) wymusza resetowanie strażnika głębokości zagnieżdżenia. Problem dotyczy również wersji LTS i FIPS.
- CVE-2026-12860Średnie
W Bouncy Castle dla Java przed wersją 1.85, weryfikacja podpisu RSA PKCS#1 pomija dwa ostatnie bajty skrótu w ścieżce z pominiętym NULL. Problem dotyczy również wersji LTS przed 2.73.12.
- CVE-2026-12852Wysokie
W Bouncy Castle dla Java przed wersją 1.85, dekoder MLS (Message Layer Security) alokuje pamięć o długości zadeklarowanej przez atakującego przed sprawdzeniem granic.
- CVE-2026-12817Wysokie
W Bouncy Castle dla Java przed wersją 1.85, deszyfrowanie OpenPGP AEAD pomija końcowy tag na danych wyrównanych do rozmiaru bloku. Problem dotyczy również wersji LTS i FIPS.
- CVE-2026-12816Wysokie
W Bouncy Castle dla Java przed wersją 1.85, silnik IES w trybie strumieniowym umożliwia fałszowanie MAC poprzez podział KDF zależny od długości. Problem dotyczy również wersji LTS przed 2.73.12.
Oryginalny opis (angielski, źródło NVD)
In Bouncy Castle for Java from 1.73 to before 1.78, three ML-KEM (CRYSTALS-Kyber) routines divided secret-derived polynomial coefficients by the modulus q: Poly.toMsg, which decodes the decrypted message, and the ciphertext compression routines Poly.compressPoly and PolyVec.compressPolyVec. An attacker able to measure the timing of a large number of decapsulations performed with the same long-term private key can recover that key. These are the KyberSlash1 (Poly.toMsg) and KyberSlash2 (ciphertext compression) divisions. Compression performed during encapsulation operates on values that become the public ciphertext and is not affected.

