Skip to content

fix: override ajv to >=8.18.0 to fix ReDoS vulnerability (GHSA-2g4f-4pwh-qvx6)#292

Merged
saltenasl merged 1 commit into
mainfrom
chris/fix-advisory-GHSA-2g4f-4pwh-qvx6
Feb 18, 2026
Merged

fix: override ajv to >=8.18.0 to fix ReDoS vulnerability (GHSA-2g4f-4pwh-qvx6)#292
saltenasl merged 1 commit into
mainfrom
chris/fix-advisory-GHSA-2g4f-4pwh-qvx6

Conversation

@Artmann

@Artmann Artmann commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

ajv <=8.17.1 is vulnerable to Regular Expression Denial of Service when the $data option is enabled. The pattern keyword accepts runtime data via JSON Pointer syntax, which is passed directly to the RegExp constructor without validation. An attacker can inject a malicious regex pattern combined with crafted input to cause catastrophic backtracking — a 31-character payload blocks the CPU for ~44 seconds, doubling with each additional character.

ajv is a transitive dependency pulled in by @jupyterlab/settingregistry and @modelcontextprotocol/sdk, so a pnpm override is used to force all instances to the patched version.

Summary by CodeRabbit

  • Chores
    • Updated package dependency constraints to ensure system stability and compatibility.

…pwh-qvx6)

ajv <=8.17.1 is vulnerable to Regular Expression Denial of Service when
the $data option is enabled. The pattern keyword accepts runtime data via
JSON Pointer syntax, which is passed directly to the RegExp constructor
without validation. An attacker can inject a malicious regex pattern
combined with crafted input to cause catastrophic backtracking — a
31-character payload blocks the CPU for ~44 seconds, doubling with each
additional character.

ajv is a transitive dependency pulled in by @jupyterlab/settingregistry
and @modelcontextprotocol/sdk, so a pnpm override is used to force all
instances to the patched version.
@coderabbitai

coderabbitai Bot commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉


📝 Walkthrough

Walkthrough

The package.json is updated to add a pnpm override constraint on the ajv package, requiring version 8.18.0 or higher. This addition is made alongside existing overrides for @isaacs/brace-expansion, diff, glob, and lodash. No functional changes or logic modifications are introduced.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a pnpm override for ajv to >=8.18.0 to address a specific ReDoS vulnerability (GHSA-2g4f-4pwh-qvx6).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Updates Docs ✅ Passed Security patch addressing ReDoS vulnerability in ajv; feature documentation requirement doesn't apply to infrastructure-level fixes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Feb 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.34%. Comparing base (8b18724) to head (9fa5c53).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #292   +/-   ##
=======================================
  Coverage   82.34%   82.34%           
=======================================
  Files         110      110           
  Lines        6785     6785           
  Branches     1817     1817           
=======================================
  Hits         5587     5587           
  Misses       1198     1198           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Artmann Artmann marked this pull request as ready for review February 18, 2026 08:56
@Artmann Artmann requested a review from a team as a code owner February 18, 2026 08:56
@Artmann Artmann requested a review from saltenasl February 18, 2026 08:56
@saltenasl saltenasl merged commit c80633d into main Feb 18, 2026
21 checks passed
@saltenasl saltenasl deleted the chris/fix-advisory-GHSA-2g4f-4pwh-qvx6 branch February 18, 2026 09:01
tkislan added a commit that referenced this pull request Jun 8, 2026
Resolve 4 moderate pnpm audit vulnerabilities in hono (transitive via
packages/mcp > @modelcontextprotocol/sdk > hono), all fixed in 4.12.21:

- GHSA-xrhx-7g5j-rcj5 (CVE-2026-47674, CVSS 5.3): ip-restriction middleware
  bypasses static deny rules for non-canonical IPv6.
- GHSA-3hrh-pfw6-9m5x (CVE-2026-47675, CVSS 4.3): cookie helper does not
  sanitize sameSite and priority, allowing Set-Cookie injection.
- GHSA-f577-qrjj-4474 (CVE-2026-47673, CVSS 4.8): jwt/jwk middleware
  accepts any Authorization scheme, not only Bearer.
- GHSA-2gcr-mfcq-wcc3 (CVE-2026-47676, CVSS 5.3): app.mount() strips
  mount prefix using undecoded path, causing incorrect routing for
  percent-encoded paths.

Bump the existing pnpm.overrides floor for hono >=4.12.18 -> >=4.12.21
following the established convention in this repo (see #387, #368, #307,
#295, #292). pnpm install resolves hono to 4.12.23. After this change
`pnpm audit` reports no known vulnerabilities. `pnpm typecheck`,
`pnpm test` (2242 tests), and `pnpm prettier:check` all pass.
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