En resumen
- CVE-2026-17495 es una vulnerabilidad MEDIO (CVSS 5.9) que afecta a moment.
- Probabilidad de explotación en los próximos 30 días (EPSS): 0.52%, mayor que el 44.1% de las vulnerabilidades.
- Solución: actualizar a 2.31.0 o posterior.
| Package | Affected versions | Patched versions |
|---|
| moment npm | ≥ 2.29.2, < 2.31.0
| 2.31.0
|
Description
Impact
moment before 2.31.0 is vulnerable to path traversal in moment.locale(). When an application passes a non-string, attacker-influenced value to moment.locale(), a specially crafted object can bypass the locale name validation and cause moment to load a file from an attacker-controlled path. This is a further bypass of the validation added in 2.29.2 for CVE-2022-24785.
This affects server-side (npm) users only. Plain string input is not affected: the existing validation correctly rejects strings that contain path separators.
Patches
This issue is patched in moment 2.31.0.
Workarounds
Validate that any user-supplied input is a string before passing it to moment.locale().
NVD description
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().
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free