Skip to content

fix: v1 backport for CVE-2026-13149 - #122

Merged
juliangruber merged 7 commits into
juliangruber:v1from
adam-tylr:feature/cve-2026-13149-backport
Jul 8, 2026
Merged

fix: v1 backport for CVE-2026-13149#122
juliangruber merged 7 commits into
juliangruber:v1from
adam-tylr:feature/cve-2026-13149-backport

Conversation

@adam-tylr

Copy link
Copy Markdown

Backports the 5.0.7 change to v1

@adam-tylr adam-tylr changed the title fix: backport for CVE-2026-13149 fix: v1 backport for CVE-2026-13149 Jul 3, 2026
Comment thread test/unbound-recursion.js

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please mirror the code present in c7e33ec?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test in v5 didn't fail in v1. Seems that version isn't subject to the same blocking issue but still subject to a stack overflow with a large input

Comment thread index.js

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also here, could you please mirror the original patch as close as possible? The more the release lines diverge, the harder it will be to backport further fixes

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made a slight modification but since v1 is so different, the recursion test passed with just the switch to loop instead of recursion

@juliangruber juliangruber left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified against base and head: the v5 PoC completes instantly on v1, the base throws a catchable RangeError from ~3,000 comma joined {} groups, and the head returns correct output up to 50,000 groups. Differential fuzzing of base vs head across 400k inputs, with and without max, found no behavior changes.

The remaining post recursion overflow ('{a,b}'.repeat(3000) with max set) matches upstream 5.0.7 and can be closed by a future CVE-2026-14257 backport.

Two optional suggestions on the test below.

Comment thread test/unbound-recursion.js Outdated
Comment thread test/unbound-recursion.js Outdated
@juliangruber
juliangruber merged commit d74e630 into juliangruber:v1 Jul 8, 2026
@juliangruber

Copy link
Copy Markdown
Owner
+ brace-expansion@1.1.16

Updated GHSA-3jxr-9vmj-r5cp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants