CVE-2025-12816
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 54 - wyżej niż 54% wszystkich znanych CVE
Streszczenie
Podatność typu interpretation-conflict (CWE-436) w bibliotece node-forge w wersjach 1.3.1 i wcześniejszych umożliwia nieuwierzytelnionym atakującym tworzenie struktur ASN.1, które desynchronizują walidację schematów. Prowadzi to do rozbieżności semantycznej, która może obejść dalsze weryfikacje kryptograficzne i decyzje bezpieczeństwa.
Ocena ryzyka
Nieuwierzytelniony atakujący może obejść weryfikacje kryptograficzne i decyzje bezpieczeństwa oparte na node-forge, co może podważyć zaufanie do walidacji certyfikatów lub podpisów.
Rekomendacja
Zaktualizuj bibliotekę node-forge do wersji nowszej niż 1.3.1 zawierającej poprawkę; przejrzyj aplikacje wykorzystujące node-forge do walidacji ASN.1 i weryfikacji kryptograficznych.
Inne podatności w node-forge
Zobacz wszystkie- CVE-2026-119191Wysokie
W bibliotece node-forge przed wersją 1.4.1 dekodowanie ASN.1 wewnątrz wartości BIT STRING nie stosuje konsekwentnie skonfigurowanego limitu maxDepth i rekurencyjnie zachowuje kopie na każdym poziomie zagnieżdżenia. Złośliwe dane DER z zagnieżdżonymi BIT STRING mogą powodować nadmierną rekurencję, zużycie CPU i kwadratowe zużycie pamięci podczas asn1.fromDer().
- CVE-2026-119190Wysokie
W bibliotece node-forge przed wersją 1.4.1 przestarzałe OID rozszerzeń 2.5.29.10 i 2.5.29.13 są parsowane jako basicConstraints, a pki.verifyCertificateChain() używa pierwszego rozszerzenia o tej nazwie. Jeśli zaufany CA wystawi certyfikat z atakującym dostarczonym przestarzałym rozszerzeniem przed prawdziwym rozszerzeniem basicConstraints, posiadacz certyfikatu może zostać uznany za CA i wystawiać certyfikaty dla dowolnych nazw.
- CVE-2026-119189Średnie
Biblioteka node-forge przed wersją 1.4.1 wymuszała ograniczenie długości ścieżki (basicConstraints.pathLenConstraint) certyfikatu CA tylko wtedy, gdy certyfikat zawierał także rozszerzenie keyUsage. Atakujący posiadający klucz prywatny takiego CA lub podrzędny certyfikat CA mógł zbudować łańcuch przekraczający zadeklarowaną długość ścieżki, który nadal przechodził walidację pki.verifyCertificateChain(). Problem naprawiono w wersji 1.4.1.
- CVE-2026-119188Wysokie
W bibliotece node-forge przed wersją 1.4.1 implementacja forge.tls.createConnection() kontynuuje przetwarzanie po tym, jak rekord TLS innego typu przerwie fragmentaryczną wiadomość handshake. Zdalny peer może wywołać nieprzechwycony TypeError w process(), powodując awarię połączenia lub procesu hostującego.
- CVE-2026-119187Wysokie
W bibliotece node-forge przed wersją 1.4.1 przetwarzanie odebranych rekordów TLS odbywa się rekurencyjnie, zużywając jedną ramkę stosu JavaScript na rekord w jednym fragmencie wejścia. Zdalny peer może wysłać tysiące małych rekordów naraz i wyczerpać stos wywołań, powodując nieprzechwycony wyjątek i odmowę usługi.
- CVE-2026-119186Średnie
W bibliotece node-forge przed wersją 1.4.1 opcja tagLength dla AES-GCM przekazywana do start() nie była walidowana podczas odszyfrowywania przez forge.cipher.createDecipher(). Gdy aplikacja wyliczała tagLength z otrzymanych danych lub używała niezdefiniowanej bądź zerowej wartości, a tag uwierzytelniający był pusty lub brakujący, decipher.finish() akceptował nieuwierzytelniony szyfrogram. Problem naprawiono w wersji 1.4.1.
- CVE-2026-118782Wysokie
W bibliotece node-forge w wersjach przed 1.4.1 akceptowano zerową lub ujemną liczbę iteracji dla MAC PKCS#12 oraz szyfrowania opartego na haśle PKCS#12. W rezultacie pki.pbe.generatePkcs12Key() zwracał stały klucz niezależny od hasła i soli, co pozwalało spreparowanym danym PKCS#12 ominąć kontrolę integralności opartą na haśle. Podatne były również przewidywalne klucze szyfrowania i IV dla PBE z pbeWithSHAAnd3-KeyTripleDES-CBC lub pbewithSHAAnd40BitRC2-CBC, w tym zaszyfrowane worki kluczy, zaszyfrowane SafeContents oraz dane PKCS#8 ENCRYPTED PRIVATE KEY przetwarzane przez forge.pki.decryptPrivateKeyInfo(). Treści szyfrowane PBES2/PBKDF2 nie są objęte problemem.
- CVE-2026-118781Niskie
W bibliotece node-forge w wersjach przed 1.4.1 dołączona implementacja jsbn wchodziła w nieskończoną pętlę, gdy BigInteger.prototype.modInverse() otrzymała wartość ujemną lub ujemny modulus. Atakujący mogący kontrolować wykładnik publiczny RSA przekazywany do generowania kluczy lub bezpośredni operand modInverse() mógł zablokować pętlę zdarzeń Node.js przy pełnym użyciu CPU. Wartości DER, PEM, JWK, PKCS#12, X.509 i TLS są bezznakowe i nie mogą wywołać tego problemu.
- CVE-2026-118780Niskie
W bibliotece node-forge przed wersją 1.4.1 funkcja pki.verifyCertificateChain() modyfikowała magazyn CA podczas testowania certyfikatów o tej samej nazwie podmiotu. Nieudana weryfikacja łańcucha mogła trwale usunąć zaufane certyfikaty CA z magazynu, powodując późniejsze błędy weryfikacji prawidłowych łańcuchów.
- CVE-2026-118779Wysokie
W bibliotece node-forge w wersjach przed 1.4.1 funkcja pem.decode() w pliku lib/pem.js używała wyrażeń regularnych o złożoności wielomianowej, m.in. przy wyszukiwaniu pasującej linii END i parsowaniu nagłówków enkapsulowanych. Nieuwierzytelniony atakujący mogący dostarczyć dane PEM do dowolnego parsera wysokiego poziomu mógł zużyć nadmierną ilość CPU długą, zniekształconą wiadomością i spowodować odmowę usługi.
Oryginalny opis (angielski, źródło NVD)
An interpretation-conflict (CWE-436) vulnerability in node-forge versions 1.3.1 and earlier enables unauthenticated attackers to craft ASN.1 structures to desynchronize schema validations, yielding a semantic divergence that may bypass downstream cryptographic verifications and security decisions.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

