FICHE CVE

CVE-2026-17495

Publiée le 2026-09-15 · Dernière modification le 2026-09-16

🇫🇷 EN BREF

Les applications Node.js côté serveur utilisant les versions 2.29.2 à 2.30.1 de `moment` sont affectées si elles transmettent des entrées utilisateur non validées directement à la fonction `moment.locale()`. Un attaquant peut exploiter cette faille pour effectuer une attaque par traversée de répertoire (path traversal), lui permettant potentiellement d'exécuter du code arbitraire ou de manipuler des fichiers internes du système. Bien qu'aucune authentification ne soit requise, l'attaque est difficile à réaliser car elle nécessite que l'application accepte un objet non textuel spécifiquement conçu via une requête réseau.

CVSS 3.15.9 MOYENNE
Type de faiblesse
Publiée2026-09-15
Dernière modification2026-09-16

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueÉlevée
Privilèges requisAucun
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéAucun
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéAucun

RÉFÉRENCES

Description officielle du NVD (en anglais)

moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. In versions 2.29.2 through 2.30.1, a specially crafted non-string object passed to moment.locale() can bypass the locale-name path-traversal guard. The guard assumes the input is a string, so an object whose match() method satisfies the check while its toString() returns a traversal path reaches an internal require() call with attacker-controlled path segments. This is an incomplete fix for CVE-2022-24785 and primarily affects npm (server-side) users that pass user-provided input directly to moment.locale(). The issue is fixed in moment 2.31.0, and users should upgrade to 2.31.0 or later. As a workaround, validate that any user-supplied input is a string before passing it to moment.locale().