JavaScript'i raamatukogus xml-crypto, mida kasutavad 402 projekti ja mis laaditakse NPM kataloogist alla umbes miljon korda nĂ€dalas, avastati haavatavus (CVE-2024-32962), mis on hinnatud maksimaalse ohtlikkuse tasemega (10 punkti 10-st). Raamatukogu pakub funktsioone XML-dokumentide krĂŒpteerimiseks ja digitaalsete allkirjade kontrollimiseks. Haavatavus vĂ”imaldab rĂŒndajal allkirjastada vale dokumendi, mis vaikimisi verifitseeritakse raamatukogus, kuigi see on allkirjastatud mitte selle vĂ”tmega, mis on mÀÀratud allkirjade kontrollimiseks. Probleem ilmneb alates versioonist xml-crypto 4.0.0 ja on ilma suurema kajata lahendatud jaanuari vĂ€ljaandes 6.0.0.
Haavatavus tuleneb sellest, et vaikimisi ei autentita raamatukogus allkirja looja, vaid kontrollitakse ainult allkirja korrektust. EelkĂ”ige usaldab raamatukogu igasugust sertifikaati, mis on paigutatud allkirjastatud dokumendi XML-elementi KeyInfo, isegi kui seadistustes on nĂ€idatud, et digitaalsete allkirjade kontrollimiseks tuleb kasutada konkreetset sertifikaati. SeetĂ”ttu piisab rĂŒndajast, et edukalt verifitseerida muudetud dokument, kui ta asendab originaalse digiallkirja oma privaatvĂ”tmega loodud allkirjaga ja paigutab seotud privaatvĂ”tmega seotud sertifikaadi (avalik vĂ”ti) elemendis KeyInfo.
Allikas: opennet.ru
