Biblioteka Bouncy Castle dla Java zawiera podatność klasy CWE-407 (Algorithmic Complexity), polegającą na kwadratowej złożoności czasowej podczas serializacji wyróżnionych nazw X.500 (Distinguished Names). Może to prowadzić do ataku typu Denial of Service (DoS) poprzez wyczerpanie zasobów procesora.
▸ Pokaż oryginał (EN)
In Bouncy Castle for Java before 1.85, Quadratic-time escaping when stringifying X.500 distinguished names. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series) and 2.1.3 (2.1.X series).
Podczas konwersji (stringify) wyróżnionych nazw X.500 do postaci tekstowej biblioteka wykonuje operację eskejpowania znaków w czasie kwadratowym względem rozmiaru wejścia. Atakujący może dostarczyć specjalnie spreparowaną, długą nazwę X.500 — np. w certyfikacie TLS lub innym obiekcie PKI — co spowoduje nieproporcjonalne zużycie czasu CPU. Powoduje to efektywne zablokowanie przetwarzania po stronie serwera lub aplikacji korzystającej z biblioteki.
Atakujący nieuwierzytelniony zdalnie może doprowadzić do całkowitej niedostępności (DoS) aplikacji lub usługi korzystającej z podatnej wersji biblioteki poprzez wyczerpanie zasobów procesora.
Należy zaktualizować bibliotekę do jednej z następujących wersji: Bouncy Castle for Java 1.85 lub nowszej; Bouncy Castle for Java LTS 2.73.12 lub nowszej; BC-FJA 1.0.2.7 (seria 1.0.X), 2.0.2 (seria 2.0.X) lub 2.1.3 (seria 2.1.X). Patche dostępne są w repozytorium producenta zgodnie z podanymi referencjami.
Bouncy Castle for Java przed wersją 1.85; Bouncy Castle for Java LTS przed wersją 2.73.12; Bouncy Castle for Java FIPS (BC-FJA) w seriach: 1.0.X przed bc-fips 1.0.2.7, 2.0.X przed 2.0.2, 2.1.X przed 2.1.3
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/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.11Bouncycastle Fips Java Api
APPBouncycastle1.0.0 – 1.0.2.7 (bez)2.0.0 – 2.0.2 (bez)2.1.0 – 2.1.3 (bez)
Powiązane podatności
Bouncy Castle dla Java — bypass Name Constraints przez trailing dot
Bouncy Castle Java: brak walidacji wartości peer w protokole MTI/A0 DH
Bouncy Castle for Java — błędna weryfikacja OCSP (CWE-295)
Bouncy Castle Java: błędna weryfikacja hostname (CN-fallback) w JSSE
Niebezpieczna refleksja przy deserializacji klucza XMSS w Bouncy Castle