Plateforme
nodejs
Composant
mathjs
Corrigé dans
3.17.0
La vulnérabilité CVE-2017-1001003 affecte la bibliothèque JavaScript math.js avant la version 3.17.0. Elle se manifeste par une faille de pollution de prototype, permettant à un attaquant de remplacer des propriétés privées, telles qu'un constructeur, en utilisant des caractères Unicode lors de la création d'un objet. Cette manipulation peut entraîner des comportements inattendus et potentiellement compromettre la sécurité de l'application.
L'exploitation réussie de cette vulnérabilité permet à un attaquant de modifier le prototype des objets math.js, ce qui peut affecter le comportement de l'ensemble de l'application. En injectant des propriétés malveillantes dans le prototype, l'attaquant peut influencer les calculs, modifier les résultats ou même exécuter du code arbitraire. Le risque est particulièrement élevé si math.js est utilisé pour traiter des données provenant de sources non fiables, car un attaquant pourrait alors manipuler ces données avant qu'elles ne soient traitées par la bibliothèque. Bien qu'il n'y ait pas de cas d'exploitation publique connus, la sévérité critique de la vulnérabilité souligne le besoin urgent de mise à jour.
Cette vulnérabilité a été publiée le 18 décembre 2017. Elle est classée comme critique en raison de sa facilité d'exploitation et de son impact potentiel. Bien qu'aucune exploitation active n'ait été signalée publiquement, la nature de la pollution de prototype la rend potentiellement exploitable dans divers contextes. Il est conseillé de surveiller les forums de sécurité et les bases de données de vulnérabilités pour d'éventuelles preuves d'exploitation.
Applications built on Node.js that utilize math.js for numerical computations or data processing are at risk. This includes web applications, command-line tools, and server-side scripts. Specifically, applications that accept user-provided data and pass it directly to math.js functions without proper sanitization are particularly vulnerable. Developers using older versions of math.js in production environments should prioritize upgrading to the patched version.
• nodejs / server:
npm list math.jsThis command checks for installed versions of math.js. If the version is less than 3.17.0, the system is vulnerable. • nodejs / server:
grep -r 'Object.prototype.' /path/to/your/appSearch for code that directly modifies Object.prototype. This may indicate attempts to exploit prototype pollution.
• generic web:
Inspect application logs for unusual errors or warnings related to object property access or modification. Unexpected behavior in data processing functions could be a sign of exploitation.
disclosure
patch
Statut de l'Exploit
EPSS
0.49% (percentile 65%)
Vecteur CVSS
La mitigation principale consiste à mettre à jour math.js vers la version 3.17.0 ou une version ultérieure, qui corrige cette vulnérabilité. Si la mise à jour n'est pas immédiatement possible, une solution temporaire consiste à valider et à nettoyer rigoureusement toutes les entrées utilisateur avant de les utiliser avec math.js. Cela peut impliquer l'utilisation de listes blanches pour autoriser uniquement les caractères et les propriétés attendus. Il est également recommandé de désactiver les fonctionnalités potentiellement dangereuses de math.js si elles ne sont pas nécessaires. Après la mise à jour, vérifiez que les fonctions critiques utilisant math.js se comportent comme prévu en effectuant des tests de régression.
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-2017-1001003 is a critical vulnerability in math.js versions before 3.17.0 that allows attackers to manipulate object properties using Unicode characters, potentially leading to code execution.
You are affected if you are using math.js versions prior to 3.17.0 in your Node.js application. Check your installed version using npm list math.js.
Upgrade to math.js version 3.17.0 or later. This version includes the fix for the prototype pollution vulnerability.
While no confirmed active campaigns are publicly known, prototype pollution vulnerabilities are a recognized attack vector, and public proof-of-concept exploits exist.
Refer to the math.js GitHub repository for information and updates related to this vulnerability: https://github.com/mathjs/mathjs/issues/3014
Téléverse ton fichier de dépendances et découvre instantanément si cette CVE et d'autres te touchent.