Summary
@modelcontextprotocol/sdk@1.29.0 ships with transitive dependencies that have known security vulnerabilities. Downstream consumers running npm audit --audit-level=high get a non-zero exit code, breaking CI pipelines.
Affected dependencies
Dependency chain
@modelcontextprotocol/sdk@1.29.0
├── ajv@8.18.0
│ └── fast-uri@3.1.0 ← HIGH: path traversal, host confusion
├── hono@4.12.14 ← moderate: bodyLimit bypass, JSX injection, JWT validation, cache leakage
├── @hono/node-server@1.19.14
│ └── hono@4.12.14 (deduped)
└── express-rate-limit@8.4.0
└── ip-address@10.1.0 ← moderate: XSS in Address6
Reproduction
mkdir repro && cd repro
npm init -y
npm install @modelcontextprotocol/sdk@1.29.0
npm audit --audit-level=high
# Exit code: 1
Suggested fix
All existing semver ranges in the SDK's package.json already allow the fixed versions. A lockfile regeneration or minimum version bump in package.json resolves all four:
No breaking changes — all fixes are patch/minor semver-compatible.
Impact
Any downstream project with npm audit in CI (standard security practice) fails on --audit-level=high due to fast-uri. This blocks releases and forces consumers to add overrides as a workaround.
Workaround (for downstream consumers)
Environment
@modelcontextprotocol/sdk: 1.29.0 (latest as of 2025-05-11)
- Node.js: 22.x
- npm: 10.x
- OS: Ubuntu 24.04 (CI), macOS 15 (local)
Summary
@modelcontextprotocol/sdk@1.29.0ships with transitive dependencies that have known security vulnerabilities. Downstream consumers runningnpm audit --audit-level=highget a non-zero exit code, breaking CI pipelines.Affected dependencies
fast-uriajv@8.18.0)honoip-addressexpress-rate-limit@8.4.0)express-rate-limitip-addressDependency chain
Reproduction
Suggested fix
All existing semver ranges in the SDK's
package.jsonalready allow the fixed versions. A lockfile regeneration or minimum version bump inpackage.jsonresolves all four:No breaking changes — all fixes are patch/minor semver-compatible.
Impact
Any downstream project with
npm auditin CI (standard security practice) fails on--audit-level=highdue tofast-uri. This blocks releases and forces consumers to addoverridesas a workaround.Workaround (for downstream consumers)
Environment
@modelcontextprotocol/sdk: 1.29.0 (latest as of 2025-05-11)