Ongecontroleerd bronnenverbruik in braces
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.
Impact en Aanvalsscenarios
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.
Uitbuitingscontext
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.
Wie Loopt Risicowordt vertaald…
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.
Detectiestappenwordt vertaald…
• 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.
Aanvalstijdlijn
- Disclosure
disclosure
Dreigingsinformatie
Exploit Status
EPSS
0.22% (45% percentiel)
CISA SSVC
CVSS-vector
Wat betekenen deze metrics?
- Attack Vector
- Netwerk — op afstand uitbuitbaar via internet. Geen fysieke of lokale toegang vereist.
- Attack Complexity
- Laag — geen speciale voorwaarden vereist. Betrouwbaar uitbuitbaar.
- Privileges Required
- Geen — geen authenticatie vereist om te exploiteren.
- User Interaction
- Geen — automatische en stille aanval. Slachtoffer doet niets.
- Scope
- Ongewijzigd — impact beperkt tot het kwetsbare component.
- Confidentiality
- Geen — geen vertrouwelijkheidsimpact.
- Integrity
- Geen — geen integriteitsimpact.
- Availability
- Hoog — volledige crash of uitputting van resources. Totale denial of service.
Getroffen Software
Pakketinformatie
- Laatste update
- 3.0.324 maanden geleden
Zwakheidsclassificatie (CWE)
Tijdlijn
- Gereserveerd
- Gepubliceerd
- Gewijzigd
- EPSS bijgewerkt
Mitigatie en Workarounds
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.
Hoe te verhelpenwordt vertaald…
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.
CVE Beveiligingsnieuwsbrief
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
Veelgestelde vragen
Wat is CVE-2024-4068 in braces?
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.
Ben ik getroffen door CVE-2024-4068 in braces?
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.
Hoe los ik CVE-2024-4068 in braces op?
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.
Wordt CVE-2024-4068 actief misbruikt?
Ja, er zijn Software Composition Analysis (SAST) en vulnerability management tools die deze kwetsbaarheid in uw code kunnen detecteren.
Waar vind ik het officiële braces-beveiligingsadvies voor CVE-2024-4068?
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.
Is jouw project getroffen?
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.