CVE-2026-63570
WysokieCVSS 7.1Streszczenie
Podatność w bibliotece bc-csharp (Bouncy Castle dla .NET) w metodzie Pkcs12Store.GetCertificateChain polega na pętli bez osiągalnego warunku wyjścia. Atakujący może dostarczyć spreparowany plik PKCS#12, w którym łańcuch certyfikatów tworzy cykl (np. dwa certyfikaty wskazujące nawzajem swoje klucze publiczne przez AuthorityKeyIdentifier), co powoduje zawieszenie aplikacji i wyczerpanie pamięci aż do OutOfMemoryException.
Ocena ryzyka
Atakujący może wywołać odmowę usługi (DoS) w aplikacji przetwarzającej niezaufane pliki PKCS#12, powodując jej zawieszenie i zużycie zasobów CPU oraz pamięci. W środowiskach produkcyjnych może to prowadzić do niedostępności usługi.
Rekomendacja
Update the Bouncy Castle for .NET (bc-csharp) library to version 2.7.0 or later. If updating is not possible, restrict processing of untrusted PKCS#12 files or apply time and resource limits.
Inne podatności w Bouncy Castle (bc-csharp)
Zobacz wszystkie- CVE-2026-103604Wysokie
W bibliotece bc-csharp (Bouncy Castle dla .NET) przed wersją 2.7.0 występuje nieefektywna złożoność algorytmiczna w konwersji nazw wyróżniających X.509 (X509Name.ToString i IetfUtilities.ValueToString). Atakujący może zdalnie, bez uwierzytelnienia, wywołać odmowę usługi poprzez wyczerpanie CPU, dostarczając certyfikat, CRL, żądanie certyfikatu lub inną strukturę, której nazwa zawiera długą wartość atrybutu wymagającą escapowania (np. przecinki, spacje wiodące/końcowe), powodując kwadratowy wzrost czasu przetwarzania.
- CVE-2026-103603Wysokie
W bibliotece bc-csharp (Bouncy Castle dla .NET) przed wersją 2.7.0 występuje podatność w kodzie podpisów HSS/LMS (HssPublicKeyParameters, HssSignature) polegająca na alokacji pamięci o nadmiernym rozmiarze. Atakujący może dostarczyć klucz publiczny HSS z nadmierną liczbą poziomów (L), co prowadzi do alokacji tablicy o rozmiarze L-1 i wyczerpania pamięci (nawet do ~17 GB) lub OutOfMemoryException.
- CVE-2026-103602Wysokie
W bibliotece bc-csharp (Bouncy Castle dla .NET) przed wersją 2.7.0 występuje nieprawidłowa walidacja certyfikatów w PkixNameConstraintValidator. Atakujący kontrolujący lub mogący uzyskać certyfikaty od pośredniego CA z ograniczeniami nazw może spowodować akceptację certyfikatów dla adresów e-mail, nazw DNS lub URI, które znajdują się w wykluczonych poddrzewach, poprzez nazwy kończące się kropką (np. rfc822Name, dNSName, uniformResourceIdentifier), ponieważ porównanie nie usuwa końcowej kropki (root-label) zgodnie z RFC 1034.
- CVE-2026-103601Wysokie
W bibliotece bc-csharp (Bouncy Castle dla .NET) przed wersją 2.7.0 występuje podatność w trybach AEAD CCM (CcmBlockCipher) i DSTU 7624 CCM (KCcmBlockCipher) polegająca na ujawnieniu niezweryfikowanego tekstu jawnego. Odszyfrowywanie zapisuje odzyskany tekst jawny do bufora wyjściowego dostarczonego przez wywołującego przed sprawdzeniem znacznika uwierzytelnienia i pozostawia go tam w przypadku niepowodzenia weryfikacji, co pozwala atakującemu na uzyskanie odszyfrowań wybranych szyfrogramów poprzez sfałszowane wiadomości.
- CVE-2026-103600Wysokie
W bibliotece bc-csharp (Bouncy Castle dla .NET) przed wersją 2.7.0 występuje niekontrolowana rekurencja w parserze ASN.1 (Asn1InputStream, Asn1StreamParser). Zdalny, nieuwierzytelniony atakujący może wywołać odmowę usługi poprzez spreparowane kodowanie ASN.1 z głęboko zagnieżdżonymi elementami konstruowanymi (np. SEQUENCE w SEQUENCE), ponieważ każdy poziom zagnieżdżenia jest parsowany przez kolejne wywołanie rekurencyjne bez ograniczenia głębokości. Około 2000 poziomów (8 KB DER) wystarcza do wyczerpania stosu wątku i wywołania StackOverflowException, którego .NET nie może przechwycić, co kończy się zakończeniem całego procesu.
Oryginalny opis (angielski, źródło NVD)
Loop with unreachable exit condition in Pkcs12Store.GetCertificateChain in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows an attacker who can supply a crafted PKCS#12 file to an application that loads it and requests a key entry's certificate chain to cause a denial of service, in which the call never returns and consumes CPU and memory until an OutOfMemoryException, via certificates whose issuer links form a cycle, for example two certificates whose AuthorityKeyIdentifier extensions each identify the other's public key. This happens because the chain-building loop stops only when no issuer is found or a certificate links to itself, and keeps no record of certificates already visited. The key-identifier links are followed without checking signatures.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

