CVE-2022-31129
HIGH7.5EPSS 3.1%Moment.js vulnerable to Inefficient Regular Expression Complexity
描述
### Impact * using string-to-date parsing in moment (more specifically rfc2822 parsing, which is tried by default) has quadratic (N^2) complexity on specific inputs * noticeable slowdown is observed with inputs above 10k characters * users who pass user-provided strings without sanity length checks to moment constructor are vulnerable to (Re)DoS attacks ### Patches The problem is patched in 2.29.4, the patch can be applied to all affected versions with minimal tweaking. ### Workarounds In general, given the proliferation of ReDoS attacks, it makes sense to limit the length of the user input to something sane, like 200 characters or less. I haven't seen legitimate cases of date-time strings longer than that, so all moment users who do pass a user-originating string to constructor are encouraged to apply such a rudimentary filter, that would help with this but also most future ReDoS vulnerabilities. ### References There is an excellent writeup of the issue here: https://github.com/moment/moment/pull/6015#issuecomment-1152961973= ### Details The issue is rooted in the code that removes legacy comments (stuff inside parenthesis) from strings during rfc2822 parsing. `moment("(".repeat(500000))` will take a few minutes to process, which is unacceptable.
受影響套件(3)
- Debian/node-momentfrom 0, < 2.29.1+ds-2+deb11u2
- npm/moment>= 2.18.0, < 2.29.4
- NuGet/Moment.js>= 2.18.0, < 2.29.4
CVSS 分數
| 來源 | 版本 | 嚴重程度 | 向量 |
|---|---|---|---|
| osv | CVSS 3.1 | HIGH7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
參考連結(21)
- ADVISORYhttps://nvd.nist.gov/vuln/detail/CVE-2022-31129
- ADVISORYhttps://security-tracker.debian.org/tracker/CVE-2022-31129
- PATCHhttps://github.com/moment/moment
- WEBhttps://github.com/moment/moment/commit/9a3b5894f3d5d602948ac8a02e4ee528a49ca3a3
- WEBhttps://github.com/moment/moment/pull/6015/commits/4bbb9f3ccbe231de40207503f344fe5ce97584f4
- WEBhttps://github.com/moment/moment/pull/6015/commits/bfd4f2375d5c1a2106246721d693a9611dddfbfe
- WEBhttps://github.com/moment/moment/pull/6015/commits/dc0d180e90d8a84f7ff13572363330a22b3ea504
- WEBhttps://github.com/moment/moment/pull/6015#issuecomment-1152961973
- WEBhttps://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g
- WEBhttps://huntr.dev/bounties/f0952b67-f2ff-44a9-a9cd-99e0a87cb633
- WEBhttps://lists.debian.org/debian-lts-announce/2023/01/msg00035.html
- WEBhttps://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/6QIO6YNLTK2T7SPKDS4JEL45FANLNC2Q
- WEBhttps://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/IWY24RJA3SBJGA5N4CU4VBPHJPPPJL5O
- WEBhttps://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ORJX2LF6KMPIHP6B2P6KZIVKMLE3LVJ5
- WEBhttps://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ZMX5YHELQVCGKKQVFXIYOTBMN23YYSRO
- WEBhttps://lists.fedoraproject.org/archives/list/[email protected]/message/6QIO6YNLTK2T7SPKDS4JEL45FANLNC2Q
- WEBhttps://lists.fedoraproject.org/archives/list/[email protected]/message/IWY24RJA3SBJGA5N4CU4VBPHJPPPJL5O
- WEBhttps://lists.fedoraproject.org/archives/list/[email protected]/message/ORJX2LF6KMPIHP6B2P6KZIVKMLE3LVJ5
- WEBhttps://lists.fedoraproject.org/archives/list/[email protected]/message/ZMX5YHELQVCGKKQVFXIYOTBMN23YYSRO
- WEBhttps://security.netapp.com/advisory/ntap-20221014-0003
- WEBhttps://security.netapp.com/advisory/ntap-20241108-0002