Platform
nodejs
Component
ansi-regex
Opgelost in
5.0.1
6.0.1
CVE-2021-3807 beschrijft een Regular Expression Denial of Service (ReDoS) kwetsbaarheid in de ansi-regex bibliotheek, een populaire module voor Node.js. Deze kwetsbaarheid ontstaat door een inefficiënt gebruik van reguliere expressies, waardoor een aanval met lange, speciaal ontworpen ANSI escape codes een denial of service kan veroorzaken. De kwetsbaarheid treft versies van ansi-regex die lager zijn dan 6.0.1. Een update naar versie 6.0.1 of hoger is vereist om de kwetsbaarheid te verhelpen.
Een succesvolle exploitatie van CVE-2021-3807 kan leiden tot een denial of service (DoS) in Node.js-applicaties die ansi-regex gebruiken. Een aanvaller kan een lange string van kwaadaardige ANSI escape codes versturen, waardoor de reguliere expressie-engine van Node.js overbelast raakt en de applicatie onbereikbaar wordt. Dit kan resulteren in het platleggen van webservers, API's of andere services die afhankelijk zijn van Node.js. De impact is significant omdat ansi-regex in veel tools en applicaties wordt gebruikt voor het verwerken en interpreteren van tekst met ANSI-kleurcodes, waardoor een breed scala aan systemen kwetsbaar kan zijn. De complexiteit van de reguliere expressie maakt het mogelijk om de verwerkingstijd exponentieel te laten toenemen met de lengte van de input, wat de DoS-aanval effectiever maakt.
CVE-2021-3807 is openbaar bekend en er is een proof-of-concept (PoC) beschikbaar. De kwetsbaarheid is niet opgenomen in de CISA KEV catalogus (KEV). Er zijn geen meldingen van actieve exploitatie in de wildernis op het moment van schrijven, maar de beschikbaarheid van een PoC maakt het mogelijk voor aanvallers om de kwetsbaarheid uit te buiten. De publicatie van de CVE en de PoC hebben de aandacht van de beveiligingsgemeenschap getrokken en het is waarschijnlijk dat er in de toekomst meer aandacht zal komen voor deze kwetsbaarheid.
Applications and services built on Node.js that utilize the ansi-regex package are at risk. This includes command-line tools, terminal emulators, logging utilities, and any application that processes ANSI escape codes. Specifically, projects using older versions of ansi-regex and those that do not perform input validation on ANSI escape code strings are particularly vulnerable.
• nodejs / server:
ps aux | grep ansi-regex | grep -v grep | awk '{print $2}' | xargs -n 1 pmap -x | grep -q 'ansi-regex.js'• nodejs / server:
journalctl -u node | grep -i "ansi-regex"• generic web:
Inspect Node.js application logs for unusually high CPU usage or errors related to ansi-regex parsing.
disclosure
poc
patch
Exploit Status
EPSS
0.21% (44% percentiel)
CVSS-vector
De primaire mitigatie voor CVE-2021-3807 is het upgraden van de ansi-regex bibliotheek naar versie 6.0.1 of hoger. Deze versie bevat een gecorrigeerde reguliere expressie die de ReDoS-kwetsbaarheid verhelpt. Indien een directe upgrade niet mogelijk is, kan een tijdelijke workaround bestaan uit het valideren en beperken van de lengte van de ANSI escape codes die de applicatie verwerkt. Dit kan worden bereikt door de input te filteren en te weigeren te verwerken strings die een bepaalde lengte overschrijden. Het implementeren van een Web Application Firewall (WAF) met regels die kwaadaardige ANSI escape code patronen detecteren en blokkeren kan ook helpen om de impact van de kwetsbaarheid te verminderen. Na de upgrade, controleer de functionaliteit van de applicatie om er zeker van te zijn dat de update geen onverwachte problemen veroorzaakt.
Actualiseer de ansi-regex afhankelijkheid naar versie 6.0.1 of hoger. Dit zal de kwetsbaarheid van inefficiënte regulieren expressie complexiteit oplossen. Voer `npm install ansi-regex@latest` of `yarn upgrade ansi-regex@latest` uit om te updaten.
Kwetsbaarheidsanalyses en kritieke waarschuwingen direct in uw inbox.
CVE-2021-3807 is a denial-of-service vulnerability in the ansi-regex package for Node.js. Attackers can trigger excessive CPU usage by providing malicious ANSI escape codes.
You are affected if you are using a version of ansi-regex prior to 6.0.1 in your Node.js project.
Upgrade to version 6.0.1 or later of the ansi-regex package. Consider input validation as a temporary mitigation.
While there are no confirmed reports of active exploitation, the availability of a PoC increases the risk of opportunistic attacks.
Refer to the ansi-regex GitHub repository for updates and advisories: https://github.com/chalk/ansi-regex
Upload je dependency-bestand en kom direct te weten of deze en andere CVEs jou raken.