fix(deps): resolve all medium-severity Dependabot security alerts - #366
Merged
Conversation
hono <4.12.34 is vulnerable to ReDoS in the CORS middleware via Access-Control-Request-Headers (CVE-2026-69207); <4.12.27 also has cross-request jsx context disclosure (CVE-2026-59896), server-side XSS via the cx() escaping bypass (CVE-2026-59895), and repeated request header loss in the API Gateway v1 adapter (CVE-2026-59897). Consumed via @modelcontextprotocol/sdk in apps/api. Resolves 4.12.25 -> 4.13.1. Fixes Dependabot alerts #285, #286, #287, #312.
dompurify <=3.4.10 carries a set of medium-severity sanitization flaws: IN_PLACE bypass via attached shadow root in <template>.content (CVE-2026-49978), cross-realm IN_PLACE bypass (CVE-2026-49458), clobbered-root attribute retention (CVE-2026-49459), permanent default-allowlist pollution via hooks (CVE-2026-65902) and via setConfig() (CVE-2026-65898). Consumed via posthog-js in apps/web. Resolves 3.4.1 -> 3.4.13. Fixes Dependabot alerts #250, #251, #252, #254, #259 (and low #253, #255, #256).
valibot <=1.4.1 record() issue paths can make flatten() throw when keys collide with inherited Object property names, enabling denial of service on untrusted validation input (GHSA-5qjj-4xww-7phc). Consumed via @prisma/dev in the api toolchain. Resolves 1.2.0 -> 1.4.2. Fixes Dependabot alert #301.
@hono/node-server <2.0.5 serve-static allows path traversal on Windows via encoded backslash (%5C) (GHSA-frvp-7c67-39w9). The patched line is 2.x; it keeps the hono ^4 peer range and the MCP SDK consumer passes its suite unchanged. Resolves 1.19.14 -> 2.1.0. Fixes Dependabot alert #284.
@opentelemetry/core <2.8.0 allows unbounded memory allocation in W3C Baggage propagation, a denial-of-service vector when processing attacker-controlled baggage headers (GHSA-8988-4f7v-96qf). The override dedupes the 1.30.1/2.2.0/2.6.1 copies to a single 2.9.0 resolution used across the telemetry stack. Fixes Dependabot alert #258.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0ee08e8. Configure here.
…e 2.x The @opentelemetry/core >=2.8.0 security override left agent-memory's dev-only sdk-trace-base@1.30.1 importing getEnv(), which core 2.x removed, so MemoryStore.spans.test.ts failed to load. The spans test already uses the 2.x constructor API (spanProcessors option), so bumping the devDependency to ^2.9.0 fixes the suite without test changes and removes the last @opentelemetry 1.x entries from the lockfile. All 28 agent-memory test files pass (207 tests).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Follow-up to #364: fixes all open medium-severity Dependabot alerts that are fixable without breaking runtime consumers (12 of 13 alerts across 5 packages; the one exception is dismissed with justification, see below). Same approach as #364 — root
pnpm.overrides, one commit per package, each verified by building the affected app(s) and running their test suites.Vulnerabilities fixed:
hono< 4.12.34: ReDoS in CORS middleware viaAccess-Control-Request-Headers→ 4.13.1hono< 4.12.27: hono/jsx context not isolated per request (cross-request data disclosure) → 4.13.1hono< 4.12.27: server-side XSS via JSX escaping bypass incx()→ 4.13.1hono< 4.12.27: API Gateway v1 adapter drops distinct repeated request header values → 4.13.1dompurify≤ 3.4.6: IN_PLACE bypass via attached shadow root inside<template>.content→ 3.4.13dompurify≤ 3.4.5: cross-realm IN_PLACE sanitization leaves executable markup → 3.4.13dompurify≤ 3.4.5: IN_PLACE preserves attributes of clobbered root element (XSS) → 3.4.13dompurify< 3.4.7: hook mutation permanently pollutes default allowlists → 3.4.13dompurify≤ 3.4.10: permanentALLOWED_ATTRpollution viasetConfig()(incomplete-fix follow-up) → 3.4.13valibot≤ 1.4.1:record()issue paths makeflatten()throw for inherited Object property names (DoS) → 1.4.2@hono/node-server< 2.0.5: path traversal inserve-staticon Windows via encoded backslash → 2.1.0@opentelemetry/core< 2.8.0: unbounded memory allocation in W3C Baggage propagation → 2.9.0 (also dedupes the orphaned 1.30.1/2.2.0/2.6.1 copies to one resolution)Three dompurify low alerts (#253, #255, #256) close as a side effect of the 3.4.13 bump.
Intentionally not fixed — file-type ASF-parser infinite loop (CVE-2026-31808, alert #45): the vulnerable
file-type@16.5.4exists only insideibm-cloud-sdk-core(pulled via@ibm-cloud/watsonx-ai←@langchain/community), a code path this app never exercises. The patched 21.x line is ESM-only and verifiably breaks the SDK's CJSFileType.fromBuffercall (getContentType(Buffer)throwsTypeError— reproduced locally before reverting). Alert dismissed as "vulnerable code is not actually used"; revisit if ibm-cloud-sdk-core updates its file-type dependency.Changes
pnpm.overridesin the rootpackage.json:hono >=4.12.34,dompurify >=3.4.11,valibot >=1.4.2 <2,@hono/node-server >=2.0.5 <3,@opentelemetry/core >=2.8.0 <3pnpm-lock.yaml(per-package commits; each diff scoped to that package's chain)packages/agent-memorydevDependency@opentelemetry/sdk-trace-base^1.30.1→^2.9.0: the core 2.x override broke the 1.x SDK'sgetEnv()import, failing the span tests (caught by Bugbot). The tests already use the 2.xspanProcessorsAPI, so no test changes were needed; this also removes the last@opentelemetry1.x entries from the lockfile.Verification (per commit + final sweep):
pnpm install --frozen-lockfilepasses; full workspace build (13 turbo tasks) green; apps/web suite fully green (45 files, 309 tests); apps/api suite green (~2,616 tests) except the known pre-existing environment-dependent failure (license.service.specreads a real license key from the local env; fails identically on unmodified master). Note the@hono/node-server1.x→2.x major: peer range stayshono ^4and the MCP SDK consumer's suites pass unchanged.packages/agent-memorysuite fully green after the sdk-trace-base bump (28 files, 207 tests).Checklist
roborev review --branchor/roborev-review-branchin Claude Code (internal)Note
Medium Risk
Medium risk from the @hono/node-server major bump and workspace-wide OTel 2.x consolidation; changes affect MCP SDK, Prisma dev tooling, and telemetry paths, though described as test-verified.
Overview
Raises minimum resolved versions through root
pnpm.overridesand regeneratespnpm-lock.yamlto close multiple medium-severity Dependabot alerts—no application source changes.Overrides added or tightened:
hono(≥4.12.34),dompurify(≥3.4.11),valibot(≥1.4.2),@hono/node-server(≥2.0.5, major from 1.x), and@opentelemetry/core(≥2.8.0). The lockfile resolveshono4.13.1,dompurify3.4.13,@hono/node-server2.1.0,valibot1.4.2, and consolidates OpenTelemetrycore/sdk-trace-baseon 2.9.0 (dropping older 1.30.x / 2.2.x copies).packages/agent-memory: devDependency@opentelemetry/sdk-trace-basemoves from ^1.30.1 to ^2.9.0 so span tests align with the unified OTel stack pulled in via LangChain/langsmith and related packages.Reviewed by Cursor Bugbot for commit 109f9d2. Bugbot is set up for automated code reviews on this repo. Configure here.