U JavaScript biblioteci xml-crypto, koja se koristi kao ovisnost u 402 projekta i preuzima se iz NPM kataloga oko milijun puta svake sedmice, otkrivena je ranjivost (CVE-2024-32962) kojoj je dodijeljena maksimalna razina opasnosti (10 od 10). Biblioteka nudi funkcije za enkripciju i verifikaciju digitalnog potpisa XML dokumenata. Ranjivost omogućava napadaču da ovjeri lažni dokument koji će, uz zadanu konfiguraciju, biti uspješno verificiran bibliotekom, unatoč tome što je potpisan kriptografskim ključem koji nije onaj naveden za provjeru potpisa. Problem se pojavljuje počevši od verzije xml-crypto 4.0.0 i bez dodatne reklame ispravljen je u januarskom izdanju 6.0.0.
Ranjivost je uzrokovana time što u zadanoj konfiguraciji biblioteka ne autorizira tvorca potpisa, već provjerava samo ispravnost samog potpisa. Konkretno, biblioteka vjeruje bilo kojem certifikatu koji je smješten u potpisanom dokumentu u XML elementu KeyInfo, čak i ako su u postavkama navedeni konkretni certifikati za provjeru digitalnih potpisa. Tako je za uspješnu verifikaciju izmijenjenog dokumenta napadaču dovoljno zamijeniti originalni digitalni potpis s potpisom koji je generiran njegovim privatnim ključem i smjestiti vezani certifikat (javni ključ) u element KeyInfo.
Izvor: opennet.ru
