Een kritiek beveiligingslek in de populaire JavaScript-bibliotheek expr-eval maakt het mogelijk om op afstand code uit te voeren. De fout, met een CVSS-score van 9.8, raakt honderden projecten en dwingt ontwikkelaars snel te migreren naar een beveiligde versie.
De kwetsbaarheid, geregistreerd als CVE-2025-12735, staat vermeld in de Amerikaanse National Vulnerability Database (NVD) en geldt als een van de ernstigste beveiligingsproblemen in recente JavaScript-ecosystemen. Volgens de NVD is de fout het gevolg van onvoldoende validatie van de context die wordt meegegeven aan de functie evaluate() in de parser van de bibliotheek. Daardoor kan een aanvaller via gemanipuleerde invoer malafide functies laten uitvoeren, met volledige controle over het gedrag van de getroffen applicatie als mogelijk gevolg.
BleepingComputer meldt dat de kwetsbaarheid werd ontdekt door beveiligingsonderzoeker Jangwoo Choe, die zijn bevindingen deelde met het Amerikaanse CERT Coordination Center (CERT-CC). In hun advies stelt CERT dat de fout ernstige gevolgen kan hebben, omdat aanvallers door de gebrekkige inputcontrole volledige toegang kunnen krijgen tot systemen die de bibliotheek gebruiken. Zowel de originele expr-eval, die al enkele jaren niet meer actief wordt onderhouden, als de huidige fork expr-eval-fork blijken kwetsbaar te zijn voor dit probleem.
Ruim 800.000 downloads per week
Expr-eval is ontwikkeld als een compacte JavaScript-bibliotheek die expressies kan parsen en evalueren. Ze wordt veel gebruikt in toepassingen waarin gebruikers invoer leveren die vervolgens moet worden omgerekend naar berekende waarden. Voorbeelden zijn online rekenhulpmiddelen, educatieve programma’s, financiële software en, de laatste tijd steeds vaker, AI- en natural language processing-systemen die getallen of berekeningen uit tekst moeten afleiden. Volgens cijfers van de npm-registry wordt expr-eval wekelijks meer dan 800.000 keer gedownload en is de bibliotheek opgenomen in ruim 250 projecten.
Voor expr-eval-fork is inmiddels een oplossing beschikbaar. De ontwikkelaars hebben in versie 3.0.0 een reeks beveiligingsmaatregelen toegevoegd, waaronder een lijst van expliciet toegestane functies, een registratiesysteem voor aangepaste functies en uitgebreidere testdekking. Deze aanpassingen moeten voorkomen dat externe invoer nog direct invloed kan hebben op de uitvoerbare context van de parser. Gebruikers van de originele expr-eval kunnen voorlopig slechts vertrouwen op een niet-geverifieerde patch die als pull request is ingediend op GitHub. Omdat het project al jaren geen actieve onderhouders meer kent, is niet bekend of de wijziging ooit in een officiële release zal worden opgenomen.
Ontwikkelaars en bedrijven die expr-eval integreren, krijgen daarom het dringende advies om te controleren welke versie zij gebruiken en indien nodig zo snel mogelijk te migreren naar expr-eval-fork versie 3.0.0 of hoger. Daarmee wordt de kwetsbaarheid CVE-2025-12735 verholpen en kan het risico op Remote Code Execution-aanvallen worden beperkt.