CVE-2026-103600
WysokieCVSS 8.7Streszczenie
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.
Ocena ryzyka
Każda ścieżka parsująca niezaufane dane ASN.1 (certyfikaty X.509, CRL, CMS/PKCS#7, PKCS#8/PKCS#12, OCSP, komunikaty TLS Certificate) jest narażona na atak DoS prowadzący do awarii procesu. Może to sparaliżować krytyczne usługi.
Rekomendacja
Update the Bouncy Castle for .NET (bc-csharp) library to version 2.7.0 or later. The new version introduces a recursion depth limit.
Inne podatności w Bouncy Castle (bc-csharp)
Zobacz wszystkie- CVE-2026-63570Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Uncontrolled recursion in the ASN.1 parser (Asn1InputStream, Asn1StreamParser) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote unauthenticated attacker to cause a denial of service via a crafted ASN.1 encoding of deeply nested constructed elements (for example SEQUENCE inside SEQUENCE, in definite-length DER or indefinite-length BER form), because each nesting level is parsed by a further recursive call with no bound on depth. About 2,000 levels (8 KB of DER) are enough to exhaust a 1.5 MB thread stack, the .NET main-thread default on Windows, and raise a StackOverflowException, which .NET cannot catch and which terminates the whole process; on threads with larger stacks, parse time instead grows quadratically with depth (about 9 seconds of CPU for a 64 KB input). Any path that parses untrusted ASN.1 is exposed, including X.509 certificates and CRLs, CMS/PKCS#7, PKCS#8/PKCS#12, OCSP and TLS Certificate messages.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

