Packages / moment / Security

ModerateVulnerabilityGHSA-4p3w-j4w9-5jqwCVE-2026-17495Published 29 Sept 2026

moment vulnerable to Path Traversal via crafted non-string locale name

Affected · moment

  • >= 2.29.2, < 2.31.0

Fixed in

2.31.0

npm install moment@2.31.0
  1. Not affected

    1.0.0 – 2.29.1

    74 releases

  2. Affected

    2.29.2 – 2.30.1

    5 releases

  3. Fixed

    2.31.0

    1 release, latest

80 stable releases of moment, oldest to newest.

What happens

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().