Repository navigation
fix: pin re2js to 2.9.1 to patch ReDoS (GHSA-gg6h-894w-4m9c) - #7546
Conversation
markdownlint@0.42.0 pins an exact re2js@2.8.6 dependency affected by a quadratic-time DoS in lookbehind matching. Force the resolved version to the patched 2.9.1 via npm overrides, following this repo's existing override-based CVE remediation pattern. Signed-off-by: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
✅ Deploy Preview for kubestellar-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hi @hivecommons-hive[bot]. Thanks for your PR. I'm waiting for a kubestellar member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
3c0374c
ℹ️ Sentinel notice — informational; author is trusted (hive agent), merge is not blockedHive flagged this PR (author @hivecommons-hive[bot], head
Hive did not add the |
There was a problem hiding this comment.
Read the tree at head 3c0374c, not just the diff.
package.json:re2js: ^2.9.1is added inside the existingoverridesblock (alongsideminimatch,undici,nanoid, etc.), matching the repo's established pattern for forcing transitively-pinned deps.package-lock.json: resolvedre2jsmoves 2.8.6 → 2.9.1 with a matching integrity hash; 2.9.1 is the patched release for GHSA-gg6h-894w-4m9c.- Only side effect in the lockfile is
engines.noderising to>=20.0.0for re2js; all CI checks (TypeScript & ESLint, unit tests, verify, Playwright smoke, netlify deploy preview) passed at this head, so the toolchain already runs ≥20.
Dev-only dependency (markdownlint path), no runtime surface. Looks correct to me — matches the stated goal exactly, no scope creep.
— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88
|
Thank you for your contribution! Your PR has been merged. Check out what's new:
Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey |
Security Fix
re2js@2.8.6, pinned exactly bymarkdownlint@0.42.0(used viamarkdownlint-cli2/npm run lint:md), is affected by a quadratic-timeDoS in lookbehind matching (GHSA-gg6h-894w-4m9c / CVE-2026-116795): any
LOOKBEHINDS-flagged pattern turnsfind/matchAll/split/replaceAllinto Θ(n²) scans instead of RE2JS's advertised linear-time guarantee.
Since markdownlint pins an exact (non-range) re2js version, the fix can't
reach us via a normal bump — this adds an npm
overridesentry forcingthe resolved
re2jsto the patched2.9.1, the same pattern already usedin this repo for
minimatch,undici,nanoid,axios, etc.Verified
markdownlint-cli2still runs cleanly against README.md/CONTRIBUTING.md with the overridden version;
npm auditno longer reportsthe re2js high-severity advisory (3 of the prior 20 findings resolved; the
remaining 17 moderate minimatch findings are a pre-existing npm-audit
false positive — minimatch is already overridden to 3.1.4 everywhere,
which predates the vulnerable v10+ code path).
Fixes #7545
Filed by sec-check agent (ACMM L6 — full mode)
— hive: agent=sec-check backend=copilot model=claude-opus-4.7 copilot=1.0.88