U JavaScript biblioteci xml-crypto, koja se koristi kao zavisnost u 402 projekta i preuzima iz NPM repozitorijuma oko milion puta svake nedelje, otkrivena je ranjivost (CVE-2024-32962) koja je ocenjena najvišim stepenom opasnosti (10 od 10). Biblioteka pruža funkcije za enkripciju i verifikaciju putem digitalnog potpisa XML dokumenata. Ranjivost omogućava napadaču da overi lažni dokument, koji će u podrazumevanju uslovima biti uspešno verifikovan od strane biblioteke, uprkos tome što je potpisan pogrešnim ključem koji je naveden za verifikaciju potpisa. Problem se javlja počevši od verzije xml-crypto 4.0.0 i bez previše medijske pažnje rešen je u janarskom izdanju 6.0.0.
Ranjivost je izazvana time što u podrazumevanju konfiguracije biblioteka ne autorizuje kreatora potpisa, već proverava samo validnost samog potpisa. Konkretno, biblioteka veruje bilo kom sertifikatu smeštenom u potpisanom dokumentu u XML elementu KeyInfo, čak i ako su u postavkama navedeni da se koristi specifični sertifikat za verifikaciju digitalnih potpisa. Dakle, za uspešnu verifikaciju modifikovanog dokumenta napadaču je dovoljno da zameni originalni digitalni potpis sa potpisom generisanim njegovim privatnim ključem i smešti povezani sertifikat (javni ključ) u element KeyInfo.
Izvor: opennet.ru
