Skip to content
This repository has been archived by the owner on May 30, 2023. It is now read-only.

chore(deps): update dependency moment to v2.29.4 [security] #283

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Nov 18, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
moment (source) 2.29.2 -> 2.29.4 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2022-31129

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.


Release Notes

moment/moment

v2.29.4

Compare Source

  • Release Jul 6, 2022
    • #​6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex

v2.29.3

Compare Source

  • Release Apr 17, 2022

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added the dependencies 🔁 Pull requests that update a dependency file label Nov 18, 2022
@pcaversaccio pcaversaccio added the typescript 𝐓𝐒 Pull requests that update TypeScript code label Nov 18, 2022
@aws-amplify-us-east-2
Copy link

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-283.dy6twuoa0pmu3.amplifyapp.com

@renovate renovate bot force-pushed the renovate/npm-moment-vulnerability branch from 1e0d006 to c832a86 Compare November 28, 2022 12:50
@renovate renovate bot force-pushed the renovate/npm-moment-vulnerability branch from c832a86 to e34518e Compare November 28, 2022 21:39
@renovate renovate bot changed the title chore(deps): update dependency moment to v2.29.4 [security] Update dependency moment to v2.29.4 [SECURITY] Dec 17, 2022
@renovate renovate bot changed the title Update dependency moment to v2.29.4 [SECURITY] chore(deps): update dependency moment to v2.29.4 [security] Dec 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
dependencies 🔁 Pull requests that update a dependency file typescript 𝐓𝐒 Pull requests that update TypeScript code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants