Podatności node-forge
23 znanych podatności CVE w node-forge, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-118778Średnie
W bibliotece node-forge w wersjach przed 1.4.1 klient TLS sprawdzał niewłaściwą właściwość przy ustalaniu, czy brakuje certyfikatu serwera. Złośliwy serwer TLS lub pośrednik w ścieżce mógł pominąć komunikat Certificate i doprowadzić do wyłuskania nieobecnego certyfikatu, powodując nieprzechwycony wyjątek i zakończenie połączenia lub procesu. Problem dotyczy forge.tls.createConnection(), c.session.serverCertificate oraz wymiany kluczy RSA.
- CVE-2026-118777Średnie
W bibliotece node-forge w wersjach przed 1.4.1 klient forge.http przechowywał nazwy i ścieżki plików cookie z nagłówków odpowiedzi Set-Cookie w zwykłych obiektach JavaScript. Złośliwy serwer mógł użyć nazwy cookie __proto__, aby zapisać kontrolowaną przez atakującego ścieżkę cookie jako właściwość Object.prototype, lub użyć nazw dziedziczonych, takich jak constructor, do modyfikacji Object. Pusta wartość cookie mogła wykorzystać ścieżkę usuwania do usunięcia dziedziczonej właściwości Object.prototype. Dotyczy to aplikacji używających forge.http bezpośrednio lub przez forge.xhr.
- CVE-2026-118776Niskie
W bibliotece node-forge przed wersją 1.4.1 walidacja dopełnienia PKCS#7 podczas deszyfrowania CBC i ECB sprawdzała tylko ostatni bajt dopełnienia. Akceptowane były zerowe, zbyt duże lub niezgodne bajty dopełnienia, co mogło prowadzić do cichego usunięcia do czterech bloków tekstu jawnego.
- CVE-2026-118775Niskie
W bibliotece node-forge przed wersją 1.4.1 funkcja asn1.oidToDer() nie sprawdzała zakresu pierwszych dwóch łuków OID. Aplikacja przyjmująca niezaufany ciąg OID, weryfikująca go, a następnie kodująca za pomocą asn1.oidToDer(), mogła wygenerować DER reprezentujący inny, zaufany OID.
- CVE-2026-118774Niskie
W bibliotece node-forge przed wersją 1.4.1 funkcja certificate.verify(child) wybierała parametry dopełnienia RSA i RSASSA-PSS na podstawie certyfikatu wystawcy, a nie weryfikowanego certyfikatu potomnego. Certyfikat potomny oznaczony jako RSASSA-PSS mógł zostać zaakceptowany z podpisem PKCS#1 v1.5, jeśli wystawca używał PKCS#1 v1.5.
- CVE-2026-85393Wysokie
Biblioteka node-forge do wersji 1.4.0 nie waliduje liczby elementów w zagnieżdżonych sekwencjach DigestAlgorithm podczas weryfikacji podpisu RSA PKCS#1 v1.5. Atakujący mogą osadzić śmieciowe bajty wewnątrz sekwencji DigestAlgorithm, aby sfałszować prawidłowe podpisy dla dowolnych wiadomości przy użyciu kluczy RSA z niskim wykładnikiem. Jest to niepełna poprawka dla CVE-2026-33894.
- CVE-2026-33896Wysokie
Podatność w bibliotece node-forge przed wersją 1.4.0 pozwala na obejście wymogów RFC 5280 dotyczących ograniczeń podstawowych (basicConstraints) podczas weryfikacji łańcucha certyfikatów. Brak wymuszenia tych ograniczeń umożliwia certyfikatowi liścia (bez rozszerzeń basicConstraints i keyUsage) działanie jako urząd certyfikacji i podpisywanie innych certyfikatów, które node-forge uzna za prawidłowe.
- CVE-2026-33895Wysokie
Biblioteka node-forge przed wersją 1.4.0 akceptuje niekanoniczne podpisy Ed25519, w których skalar S nie jest zredukowany modulo rząd grupy (S >= L). Oznacza to, że zarówno prawidłowy podpis, jak i jego wariant S+L są uznawane za ważne, podczas gdy zgodna ze specyfikacją implementacja OpenSSL odrzuca wariant S+L.
- CVE-2026-33894Wysokie
Biblioteka node-forge przed wersją 1.4.0 zawiera podatność w weryfikacji podpisów RSASSA PKCS#1 v1.5 dla kluczy z niskim wykładnikiem publicznym (e=3). Atakujący może sfałszować podpis poprzez dodanie „śmieciowych” bajtów w strukturze ASN, co umożliwia atak typu Bleichenbacher. Podatność jest podobna do CVE-2022-24771, ale różni się miejscem wstawiania danych.
- CVE-2026-33891Wysokie
W bibliotece node-forge przed wersją 1.4.0 występuje podatność na atak typu DoS spowodowana nieskończoną pętlą w funkcji BigInteger.modInverse(). Wywołanie tej funkcji z wartością zero powoduje zawieszenie procesu i 100% wykorzystanie CPU.
- CVE-2025-66031Wysokie
Forge (zwany także node-forge) to natywna implementacja Transport Layer Security w JavaScript. Podatność niekontrolowanej rekurencji w node-forge w wersjach 1.3.1 i wcześniejszych umożliwia zdalnym, nieuwierzytelnionym atakującym tworzenie głębokich struktur ASN.1, które wywołują nieograniczone parsowanie rekurencyjne. Prowadzi to do odmowy usługi (DoS) poprzez wyczerpanie stosu podczas parsowania niezaufanych danych wejściowych DER. Problem naprawiono w wersji 1.3.2.
- CVE-2025-66030Średnie
W bibliotece node-forge (wersje 1.3.1 i wcześniejsze) występuje przepełnienie liczb całkowitych przy dekodowaniu struktur ASN.1 z OID-ami o zbyt dużych łukach. Z powodu 32-bitowego obcięcia bitowego takie OID-y mogą zostać zdekodowane jako mniejsze, zaufane OID-y, co pozwala obejść decyzje bezpieczeństwa oparte na OID. Podatność została naprawiona w wersji 1.3.2.
- CVE-2025-12816Wysokie
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

