v2.1.7
Security
-
Floored
honoto^4.12.34, clearing GHSA-8j4g-w8fx-2239 (moderate). This was deferred earlier the same day: the fix release was still inside the repo's 24-hourminimumReleaseAgesoak — it missed by under three minutes — and nominimumReleaseAgeExcludecarve-out was added, because the soak is the point. It matured at 2026-08-04T02:36:40Z and is floored now.pnpm auditreports no known vulnerabilities. -
Floored
fast-urion its fix for GHSA-7p8r-x3mc-p8w7 (high) and corrected an exact pin that had silently become a ceiling. The override was written as the bare pinfast-uri: 3.1.4back when 3.1.4 was the security floor for an earlier advisory. When 3.1.5 shipped the fix for GHSA-7p8r-x3mc-p8w7, that pin inverted into a ceiling: it held the tree on the vulnerable version and made the advisory permanently unclearable, with no warning — an override that pins rather than floors cannot distinguish "this is the minimum safe version" from "this is the only allowed version". The entry is now the caret range^3.1.5, which stays inside the majorajvexpects while letting patch fixes flow in. This one is genuinely in the product rather than the dev toolchain:fast-uriarrives viaajv→@modelcontextprotocol/sdk, andajvis inlined into the committedbuild/index.js, so the published bundle carried the vulnerable parser verbatim. The rebuilt bundle now carries 3.1.5, which is why this release owes a version bump. Every other floor inpnpm-workspace.yamlwas audited for the same shape; thebrace-expansionentries are already two-sided ranges and are unaffected. Matches apple-mail-mcp#128. -
Floored
ip-addresson 10.3.1 for GHSA-mwp4-54f8-5fhr (high), which also carries GHSA-4xrf-jv44-h6hh and GHSA-22jq-vg5j-6vgg. Reached asexpress-rate-limit→@modelcontextprotocol/sdk, which capped it at 10.2.0 — below the first fully patched release. Written as^10.3.1rather than a pin, for the reason above; it resolves 10.4.0. The dependency is runtime-scope, but the SDK's HTTP transport is not part of this server's bundle (noip-addressreference appears inbuild/index.js), so the exposure was supply-chain rather than a live code path in the published package. -
Floored
postcsson 8.5.23 for GHSA-fxqj-rqcc-2cmp (moderate) — the incomplete-fix follow-up to GHSA-6g55-p6wh-862q, where an attacker-controlledsourceMappingURLcan read arbitrary.mapfiles whenfromis unset. Development scope only (vitest→vite→postcss, absent from the shipped bundle), andvite's own range is already^8.5.6, so the floor costs nothing; it resolves 8.5.25. -
Deferred:
hono(GHSA-8j4g-w8fx-2239, moderate). The fix is in 4.12.34, but that release was still inside this repo's declared 1440-minuteminimumReleaseAgesoak, sopnpm installrefuses it withERR_PNPM_NO_MATURE_MATCHING_VERSION. NominimumReleaseAgeExcludecarve-out was added and no audit suppression was applied — the soak is a deliberate supply-chain control, and squeezing a release past it by minutes defeats the point of having one.honoreaches the tree as@hono/node-server→@modelcontextprotocol/sdkand is not in the shipped bundle, so nothing in the published package is exposed. The follow-up (addhono: ^4.12.34) is recorded as a comment beside the other floors inpnpm-workspace.yaml.pnpm audit --audit-level=highis clean; this advisory is the single remaining moderate.