CVE-2026-33895
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność umożliwia fałszowanie podpisów cyfrowych, co może prowadzić do obejścia mechanizmów uwierzytelniania i autoryzacji. Aplikacje polegające na unikalności podpisów (np. deduplikacja, śledzenie odpowiedzi, weryfikacja kanoniczności) są narażone na ataki typu signature malleability.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę node-forge do wersji 1.4.0 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy wdrożyć dodatkową walidację podpisów po stronie aplikacji, odrzucając podpisy z S >= L.
Inne podatności w node-forge
Zobacz wszystkie- 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-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.
Oryginalny opis (angielski, źródło NVD)
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (`S >= L`). A valid signature and its `S + L` variant both verify in forge, while Node.js `crypto.verify` (OpenSSL-backed) rejects the `S + L` variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.

