# fix\(deps\): update packages with high and critical security advisories · PR \#23906 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/23906)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: open

Source repository: Unavailable fork

Source branch: fix/deps-security-advisories

Target branch: main

Head commit: 7494b70869550b7fa4cebbe952e8d23d14679d54

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/23906)

[Commits](https://git.cafe/pingdotgg/t3code/pull/23906/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/23906/diffs?format=markdown)

## Description

---

## Problem

`osv-scanner` on `pnpm-lock.yaml` at `main` reports 12 packages with 16 high or critical advisories between them. Eight of the packages have a fixed release, so a dependency update removes their advisories.

## Change

- Bump direct dependencies. `@modelcontextprotocol/sdk` goes from 1.29.0 to 1.32.0 in `apps/server`, and `dompurify` from 3.4.16 to 3.4.17 in `apps/web`. `sharp` goes from 0.35.4 to 0.35.5 in `apps/marketing` and `scripts`.
- Refresh `seroval`, `shell-quote`, `proxy-addr`, and `source-map-js` inside their parents' existing ranges. This changes the lockfile only.
- Add one override in `pnpm-workspace.yaml`. `@vercel/routing-utils` pins `path-to-regexp` 6.1.0 exactly, even in its latest release, so the override moves it to 6.3.0.

The lockfile diff contains only these packages and sharp's platform binaries.

## Scope and approval

Refs #23907, which lists every advisory with its CVE and where T3 Code uses the package. This PR fixes 8 of the 12 packages, and the issue tracks the other 4.

This is maintenance with no change to product behavior, and every bump is a patch or minor release. It fixes one problem: dependencies with published advisories. The advisories are public, so this uses a normal PR rather than the private security address.

Out of scope: `braces`, `node-forge`, and `http-cache-semantics` have no fixed release yet. `uuid` 7.0.3 under Expo's `xcode` needs a major bump, which belongs in its own PR.

## Verification

- `osv-scanner` on the new lockfile: 12 high or critical packages before, 4 after. The 4 are the out-of-scope packages above.
- `apps/server`: `tsc --noEmit` is clean. `vp test run` on the Claude adapter, provider, MCP app, MCP OAuth, and HTTP tests passes 260 of 260. A script ran a tool call through `createSdkMcpServer` from `@anthropic-ai/claude-agent-sdk`, which is the SDK's only consumer, on MCP SDK 1.32.0.
- `apps/web`: `tsc --noEmit` is clean and `vp build` succeeds. A local browser test rendered a real flowchart and a math diagram through both DOMPurify sanitizers in `MermaidDiagram.tsx`. The test failed when I made the sanitizer strip `text` or `msup`. The test is not in this PR because nothing in the repo currently covers those sanitizers, and that is a separate problem.
- `apps/marketing`: `astro build` succeeds and writes `.webp` images through `sharp` 0.35.5. `scripts` and alchemy's Cloudflare runtime both load the same single `sharp` 0.35.5.
- Both `vercel.ts` configs give identical `getTransformedRoutes` output with `path-to-regexp` 6.1.0 and 6.3.0.

Not checked: desktop and mobile builds, and a real alchemy or Vercel deploy.

Done with Claude Opus 5.5 in Claude Code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

