Platform
nodejs
Component
braces
Opgelost in
3.0.3
3.0.3
CVE-2024-4068 is een kwetsbaarheid in de braces NPM package die kan leiden tot geheugenuitputting. Een kwaadwillende gebruiker kan "onevenwichtige accolades" als input sturen, waardoor de parsing in een loop terechtkomt en het programma heap geheugen blijft toewijzen zonder het vrij te geven. Dit resulteert in het bereiken van de JavaScript heap limiet en het crashen van het programma, wat een Denial of Service (DoS) veroorzaakt. De kwetsbaarheid treft versies vóór 3.0.3 van de braces package. De kwetsbaarheid is verholpen in versie 3.0.3.
De kwetsbaarheid CVE-2024-4068 in het npm-pakket braces kan leiden tot geheugenuitputting. Dit komt door het ontbreken van limieten op het aantal tekens dat het pakket kan verwerken. Een kwaadwillende actor kan deze kwetsbaarheid uitbuiten door input te verzenden met 'onevenwichtige accolades'. Dit triggert een oneindige lus in de parsercode (lib/parse.js), wat resulteert in continue geheugenallocatie zonder vrijgave. Uiteindelijk wordt de JavaScript heap limiet bereikt, waardoor de applicatie crasht. Deze kwetsbaarheid is vooral zorgwekkend voor applicaties die gebruikersinvoer verwerken, aangezien een aanvaller gemakkelijk een kwaadaardige invoer kan creëren om een denial-of-service te veroorzaken of zelfs de systeembeveiliging te compromitteren.
Het exploiteren van deze kwetsbaarheid vereist dat een aanvaller in staat is om de invoer te controleren die aan het braces-pakket wordt verstrekt. Dit kan gebeuren in webapplicaties die gebruikersinvoer verwerken, of in elk ander scenario waarin het braces-pakket wordt gebruikt om bestandsmodellen of strings te parsen. Een aanvaller kan onevenwichtige accolades injecteren in een zoekstring, bestandsnaam of andere gegevens die aan het pakket worden doorgegeven. De eenvoud van exploitatie maakt deze kwetsbaarheid een belangrijk probleem, vooral voor veelgebruikte applicaties.
Applications built with Node.js that directly or indirectly depend on the braces package, particularly those handling user-supplied input without proper validation, are at risk. This includes web applications, command-line tools, and any other Node.js-based software utilizing the braces package for string manipulation or pattern matching.
• nodejs / server:
npm list braces• nodejs / server:
npm audit• nodejs / server: Check application logs for errors related to memory allocation or heap exhaustion. • nodejs / server: Monitor process resource usage (CPU, memory) for sudden spikes indicative of memory exhaustion.
disclosure
Exploit Status
EPSS
0.22% (45% percentiel)
CISA SSVC
CVSS-vector
De aanbevolen oplossing is om het braces-pakket bij te werken naar versie 3.0.3 of hoger. Deze versie bevat een fix die de hoeveelheid geheugen beperkt die de parser kan toewijzen, waardoor de oneindige lus en geheugenuitputting worden voorkomen. Als een onmiddellijke update niet mogelijk is, kan een tijdelijke mitigatie worden geïmplementeerd door de maximale lengte van de invoer die aan het braces-pakket wordt doorgegeven te beperken. Er moet een risicobeoordeling worden uitgevoerd om de waarschijnlijkheid van uitbuiting en de potentiële impact op het systeem te bepalen. Bovendien kan het monitoren van het geheugengebruik van de applicatie helpen om potentiële aanvallen te detecteren en te verzachten.
Actualice el paquete `braces` a la versión 3.0.3 o superior. Esto se puede hacer ejecutando `npm install braces@latest` o `yarn upgrade braces@latest` en su proyecto. Asegúrese de verificar que la actualización no cause conflictos con otras dependencias.
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
Dit verwijst naar een string die meer open dan sluitende accolades bevat, of omgekeerd. Bijvoorbeeld '{[()]' of '()[]}'. De braces-pakket parser behandelt deze gevallen niet correct, wat leidt tot de oneindige lus.
Als uw applicatie het braces-pakket in een versie lager dan 3.0.3 gebruikt, is deze kwetsbaar. U kunt de pakketversie controleren met de opdracht npm list braces in uw terminal.
Als tijdelijke mitigatie, beperk de maximale lengte van de invoer die aan het braces-pakket wordt doorgegeven. Dit kan helpen om geheugenuitputting te voorkomen, maar het is geen volledige oplossing.
Ja, er zijn Software Composition Analysis (SAST) en vulnerability management tools die deze kwetsbaarheid in uw code kunnen detecteren.
De kwetsbaarheid kan leiden tot een denial-of-service (DoS) door het geheugen van de applicatie uit te putten. In ernstigere gevallen kan het een aanvaller toestaan om kwaadaardige code op het systeem uit te voeren.
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.