Omzeiling van verificatie in de xml-crypto bibliotheek, die wekelijks miljoenen downloads heeft

In de JavaScript-bibliotheek xml-crypto, die als afhankelijkheid door 402 projecten wordt gebruikt en ongeveer een miljoen keer per week vanuit de NPM-catalogus wordt gedownload, is een kwetsbaarheid (CVE-2024-32962) ontdekt, die het hoogste niveau van gevaar (10 van 10) heeft gekregen. De bibliotheek biedt functies voor het versleutelen en verifiëren van digitale handtekeningen van XML-documenten. De kwetsbaarheid stelt een aanvaller in staat een vervalst document te ondertekenen, dat in de standaardconfiguratie succesvol door de bibliotheek zal worden geverifieerd, ondanks dat het is ondertekend met een andere sleutel dan degene die is opgegeven voor de verificatie van handtekeningen. Het probleem doet zich voor vanaf versie xml-crypto 4.0.0 en is zonder veel publiciteit verholpen in de januari-release 6.0.0.

De kwetsbaarheid wordt veroorzaakt doordat de bibliotheek in de standaardconfiguratie de maker van de handtekening niet autoriseert, maar alleen de geldigheid van de handtekening zelf controleert. De bibliotheek vertrouwt specifiek op elk certificaat dat in het ondertekende document in het XML-element KeyInfo is geplaatst, zelfs als in de instellingen is opgegeven dat een specifiek certificaat voor de verificatie van digitale handtekeningen moet worden gebruikt. Daarom is het voor een aanvaller voldoende om de originele digitale handtekening te vervangen door een handtekening die met zijn eigen privésleutel is gegenereerd en het bijbehorende certificaat (publieke sleutel) in het KeyInfo-element te plaatsen voor een succesvolle verificatie van het gewijzigde document.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster