Biblioteka Bouncy Castle for Java alokuje pamięć na podstawie niezaufanych wartości długości odczytanych z pliku keystore BKS/UBER, zanim zostanie przeprowadzona weryfikacja integralności danych. Może to prowadzić do wyczerpania dostępnej pamięci przez spreparowany plik keystore, skutkując odmową usługi (DoS).
▸ Pokaż oryginał (EN)
In Bouncy Castle for Java before 1.85, BKS/UBER keystore allocates from untrusted lengths before integrity check. This issue also affects Bouncy Castle for Java LTS before 2.73.12.
Podatność (CWE-789: Uncontrolled Memory Allocation) polega na tym, że podczas parsowania keystore'ów w formatach BKS lub UBER aplikacja odczytuje wartości długości bezpośrednio z niezaufanego wejścia i na ich podstawie dokonuje alokacji pamięci. Weryfikacja integralności (np. sprawdzenie sumy kontrolnej lub podpisu) następuje dopiero po tej alokacji, a nie przed nią. Osoba atakująca może dostarczyć spreparowany plik keystore zawierający wygórowane wartości długości, wymuszając alokację bardzo dużych bloków pamięci.
Atakujący może spowodować wyczerpanie pamięci heap aplikacji korzystającej z biblioteki Bouncy Castle, co prowadzi do odmowy usługi (DoS) — aplikacja może stać się niestabilna lub ulec awarii.
Należy zaktualizować Bouncy Castle for Java do wersji 1.85 lub nowszej, a w przypadku gałęzi LTS — do wersji 2.73.12 lub nowszej. Szczegóły dostępne w referencjach producenta: https://github.com/bcgit/bc-java/wiki/CVE-2026-12185
Bouncy Castle for Java przed wersją 1.85 oraz Bouncy Castle for Java LTS przed wersją 2.73.12.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:AmberBouncycastle Bc Java
APPBouncycastle< 1.85Bouncycastle Bouncy Castle For Java Lts
APPBouncycastle≤ 2.73.11
Powiązane podatności
Bouncy Castle Java: błędna weryfikacja hostname (CN-fallback) w JSSE
Bouncy Castle Java: brak walidacji wartości peer w protokole MTI/A0 DH
Niebezpieczna refleksja przy deserializacji klucza XMSS w Bouncy Castle
Bouncy Castle for Java: przedwczesna alokacja pamięci w dekoderze MLS
Bouncy Castle for Java: pominięcie weryfikacji tagu AEAD w OpenPGP