Plateforme
nodejs
Composant
uglify-js
Corrigé dans
2.6.0
La vulnérabilité CVE-2015-8858 est une faille de déni de service (DoS) affectant les versions d'uglify-js antérieures à la version 2.6.0. Elle est due à une expression régulière mal gérée, permettant à un attaquant de provoquer une consommation excessive de ressources en injectant des entrées malveillantes dans la méthode parse(). Cette vulnérabilité peut entraîner un blocage de l'application ou du serveur. La version 2.6.0 corrige cette faille.
Un attaquant peut exploiter cette vulnérabilité en fournissant une entrée spécialement conçue à la méthode parse() d'uglify-js. Cette entrée, contenant une chaîne de caractères excessivement longue ou une structure particulière, peut provoquer une boucle infinie ou une consommation excessive de mémoire par l'expression régulière. Le résultat est un déni de service, rendant l'application inaccessible ou ralentissant considérablement son fonctionnement. L'impact peut s'étendre au serveur hébergeant l'application, affectant potentiellement d'autres services. Le PoC fourni démontre clairement l'impact en augmentant la longueur de la chaîne d'entrée, ce qui entraîne une augmentation significative du temps d'exécution.
Cette vulnérabilité a été rendue publique en 2015, mais son exploitation reste potentiellement pertinente, en particulier dans les environnements utilisant des versions obsolètes d'uglify-js. Aucune exploitation active n'est signalée publiquement à ce jour, mais la simplicité du PoC suggère un risque d'exploitation. La vulnérabilité a été publiée le 24 octobre 2017. Il n'y a pas d'entrée dans le KEV à ce jour.
Node.js developers and DevOps teams using uglify-js in their projects are at risk. Specifically, projects using older versions of uglify-js (prior to 2.6.0) and those that do not have robust input validation mechanisms are particularly vulnerable. Applications that rely on uglify-js for minifying JavaScript code in production environments are also at increased risk.
• nodejs / server:
ps aux | grep uglify-js | grep -v grep | awk '{print $2}' | xargs -n 1 pmap -x | grep -q 'regex' # Check for excessive regex usage• nodejs / server:
journalctl -u nodejs | grep -i 'uglify-js' | grep -i 'error' # Look for errors related to uglify-js• generic web:
Inspect Node.js application logs for unusual CPU spikes or memory usage correlated with uglify-js processing.
discovery
disclosure
patch
Statut de l'Exploit
EPSS
0.90% (percentile 76%)
Vecteur CVSS
La mitigation principale consiste à mettre à jour uglify-js vers la version 2.6.0 ou ultérieure, qui corrige cette vulnérabilité. Si la mise à jour n'est pas immédiatement possible, une solution temporaire pourrait consister à valider et à limiter la taille des entrées soumises à la méthode parse(). Il est également possible d'utiliser un pare-feu applicatif web (WAF) pour bloquer les requêtes contenant des motifs suspects. En cas de problèmes de compatibilité après la mise à jour, envisagez de revenir à une version précédente stable avant d'appliquer les correctifs nécessaires. Après la mise à jour, vérifiez le bon fonctionnement de l'application en effectuant des tests de performance et de stabilité.
Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.
Analyses de vulnérabilités et alertes critiques directement dans votre boîte mail.
CVE-2015-8858 is a Denial of Service vulnerability in the uglify-js Node.js package, allowing attackers to cause performance degradation by exploiting a flawed regular expression in the parse() method.
You are affected if you are using a version of uglify-js prior to 2.6.0. Check your project dependencies and update if necessary.
Upgrade to version 2.6.0 or later of uglify-js. Consider implementing input validation as an additional precaution.
While no active exploitation campaigns have been publicly reported, the availability of a proof-of-concept makes it potentially exploitable.
Refer to the official npm advisory and the CVE record for more details: https://nvd.nist.gov/vuln/detail/CVE-2015-8858
Téléverse ton fichier de dépendances et découvre instantanément si cette CVE et d'autres te touchent.