CVE-2026-103601
WysokieCVSS 8.2Streszczenie
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.
Ocena ryzyka
Atakujący może uzyskać informacje o odszyfrowanym tekście jawnym bez znajomości klucza, jeśli aplikacja pozwala na obserwację bufora wyjściowego po nieudanej deszyfracji (np. poprzez ponowne użycie bufora lub logowanie). Może to prowadzić do naruszenia poufności danych.
Rekomendacja
Update the Bouncy Castle for .NET (bc-csharp) library to version 2.7.0 or later. Avoid using decryption methods that write to caller-supplied buffers; prefer methods returning a newly allocated array.
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-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)
Release of unverified plaintext in the CCM (CcmBlockCipher) and DSTU 7624 CCM (KCcmBlockCipher) AEAD modes in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote attacker to obtain decryptions of ciphertexts of their choosing via forged messages sent to an application that lets the output buffer of a failed decryption be observed, for example through buffer reuse or logging, because decryption wrote the recovered plaintext into the caller-supplied output buffer before checking the authentication tag and left it there when the check failed. Only decryption into a caller-supplied buffer is affected; methods that return a newly allocated array are not.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

