Ranjivost u paketu node-forge, jednoj od najpopularnijih JavaScript kriptografskih biblioteka, mogla bi se iskoristiti za zaobilaženje verifikacije digitalnih potpisa kreiranjem podataka koji izgledaju validno.
Propust je evidentiran kao CVE-2025-12816 i označen je kao visokog nivoa ozbiljnosti. Nastaje zbog načina na koji biblioteka obrađuje ASN.1 validaciju, što omogućava da malformirani podaci prođu provjere čak i kada kriptografski nisu validni.
„Ranjivost u interpretaciji u node-forge verzijama 1.3.1 i starijim omogućava neautentifikovanim napadačima da kreiraju ASN.1 strukture koje dovode do desinhronizacije šemskih validacija, stvarajući semantičko odstupanje koje može zaobići nizvodne kriptografske provjere i bezbjednosne odluke“, navodi se u opisu propusta u National Vulnerabilities Database (NVD).
Hunter Wodzenski iz Palo Alto Networksa otkrio je ranjivost i odgovorno je prijavio razvojnim timovima node-forge projekta.
Istraživač upozorava da se aplikacije koje se oslanjaju na node-forge za provjeru strukture i integriteta ASN.1-zasnovanih kriptografskih protokola mogu prevariti da prihvate malformirane podatke, te je objavio proof-of-concept koji pokazuje kako se falsifikovani payload može provući kroz mehanizam verifikacije.
Bezbjednosno upozorenje Carnegie Mellon CERT-CC navodi da se uticaj razlikuje u zavisnosti od aplikacije, ali može uključivati zaobilaženje autentifikacije, mijenjanje potpisanih podataka i zloupotrebu funkcija vezanih za sertifikate.
„U okruženjima gdje kriptografska verifikacija igra ključnu ulogu u donošenju odluka o povjerenju, potencijalni uticaj može biti značajan“, upozorava CERT-CC.
Potencijalni uticaj je još veći imajući u vidu da je node-forge izuzetno popularan, sa skoro 26 miliona nedjeljnih preuzimanja na Node Package Manager (NPM) registriju.
Biblioteka se koristi u projektima kojima je potrebna kriptografska i PKI funkcionalnost u JavaScript okruženjima.
Propusti u široko korišćenim open-source projektima često ostaju prisutni dugo nakon javnog otkrivanja i dostupnosti zakrpe. Razlozi za to variraju, uključujući kompleksnost okruženja i potrebu da se novi kod detaljno testira prije implementacije.
Izvor: BleepingComputer
