Files
langgraphjs/package.json
T
John Kennedy 7f3320cda8 fix: patch 6 medium-severity security alerts (#2333)
## Security Alert Patch (medium-tier follow-up)

Follow-up to #2329, which patched the critical+high tier. This PR
resolves the remaining **6 medium-severity Dependabot alerts** via
`pnpm.overrides` plus one published-path constraint bump. All fixes are
patch/minor bumps within the current major — no breaking changes.

### Packages Updated

| Package | Old Constraint | New Constraint | Strategy | Scope | CVEs
Resolved |

|---------|---------------|----------------|----------|-------|---------------|
| `axios` | `>=1.13.5` (override) | `>=1.15.0` (override); resolved
1.13.6 → **1.15.1** | C (override) | dev-only (via `@langchain/scripts`
devDep) | CVE-2025-62718 (SSRF via NO_PROXY bypass), CVE-2026-40175
(cloud metadata exfiltration) |
| `dompurify` | (transitive, resolved 3.3.3) | `>=3.4.0` (new override);
resolved **3.4.0** | C (override) | dev-only (private
`@example/ai-elements` via mermaid) | GHSA-39q2-94rc-95cp (ADD_TAGS
bypasses FORBID_TAGS) |
| `follow-redirects` | (transitive, resolved 1.15.11) | `>=1.16.0` (new
override); resolved **1.16.0** | C (override) | dev-only (via
`@langchain/scripts` devDep) | GHSA-r4q5-vmmm-2653 (auth header leak on
cross-domain redirect) |
| `langsmith` (published path) | `langsmith: >=0.3.33 <1.0.0` in
`libs/langgraph-api/package.json` | `>=0.5.19 <1.0.0` | **A (manifest
bump)** | **published** — direct dep of `@langchain/langgraph-api` |
CVE-2026-40190 (prototype pollution), GHSA-rr7j-v2q5-chgv (streaming
redaction bypass) |
| `langsmith` (dev chains) | (transitive 0.4.12, 0.5.16 resolved via
`@langchain/classic`, `langchain@1.3.0`) | `langsmith@<0.5.19: >=0.5.19
<1` (new override) | C (override) | dev-only | same as above (flushes
vulnerable transitive copies) |

*Strategy C overrides follow the existing repo pattern — axios, qs,
undici, minimatch, brace-expansion, protobufjs, basic-ftp, vite, and
defu are already overridden the same way.*

### Published-path rationale

`@langchain/langgraph-api` exercises `langsmith` at runtime for tracing
and streaming, which touches the affected internal code paths (lodash
`set()` prototype-pollution guard, token-event redaction). Therefore the
fix is Strategy A (raise the published lower bound) rather than
A-lockfile — this protects end users who pin `@langchain/langgraph-api`.
The lockfile already resolved `langsmith@0.5.20` before this change, so
installs are unchanged at HEAD; the bump is a downstream-safety
constraint tightening.

### Deferred (not fixed in this PR)

- **`protobufjs@6.11.5`** (CRITICAL, CVE-2026-41242) — reached via
`@xenova/transformers@2.17.2` in `libs/langgraph-core` devDeps +
examples. `@xenova/transformers` is abandoned; the successor is
`@huggingface/transformers@3`. Forcing a 6.x → 7.x override would cross
a breaking API boundary. **Upstream issue — requires a manual migration,
tracked separately.** (See #2329 body for full context.)
- **`elliptic@6.6.1`** (LOW, GHSA-848j-6mx2-7j84) —
`first_patched_version` is `null`; upstream has not released a fix.
Defer until a patched version ships.

### CVE Details

- **CVE-2025-62718** / GHSA-3p68-rc4w-qgx5 — Axios NO_PROXY Hostname
Normalization Bypass Leads to SSRF —
https://github.com/advisories/GHSA-3p68-rc4w-qgx5
- **CVE-2026-40175** / GHSA-fvcv-3m26-pcqx — Axios Unrestricted Cloud
Metadata Exfiltration via Header Injection Chain —
https://github.com/advisories/GHSA-fvcv-3m26-pcqx
- **GHSA-39q2-94rc-95cp** — DOMPurify `ADD_TAGS` bypasses `FORBID_TAGS`
via short-circuit evaluation —
https://github.com/advisories/GHSA-39q2-94rc-95cp
- **GHSA-r4q5-vmmm-2653** — follow-redirects leaks custom authentication
headers to cross-domain redirect targets —
https://github.com/advisories/GHSA-r4q5-vmmm-2653
- **CVE-2026-40190** / GHSA-fw9q-39r9-c252 — LangSmith prototype
pollution via incomplete `__proto__` guard in internal lodash `set()` —
https://github.com/advisories/GHSA-fw9q-39r9-c252
- **GHSA-rr7j-v2q5-chgv** — LangSmith streaming token events bypass
output redaction — https://github.com/advisories/GHSA-rr7j-v2q5-chgv

### Linear Tickets

Linear ticket lookup returned no matches for the resolved CVEs/GHSAs. No
ticket IDs included in the title.

### Verification

- [x] Lockfile regenerated via `pnpm install --lockfile-only`
- [x] `pnpm lint` (oxlint) — 0 warnings, 0 errors
- [x] `pnpm format:check` (oxfmt) — clean
- [x] `pnpm audit --prod` — **No known vulnerabilities found**
- [x] `pnpm typecheck` on `libs/langgraph-api` — clean
- [x] No staged secrets (`gitleaks git --staged`)

🤖 Submitted by langster-patch

Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-04-22 09:26:44 -07:00

98 lines
2.9 KiB
JSON

{
"private": true,
"packageManager": "pnpm@10.27.0",
"engines": {
"node": ">=18"
},
"repository": {
"type": "git",
"url": "git@github.com:langchain-ai/langgraphjs.git"
},
"scripts": {
"build": "turbo run build:internal",
"changeset": "npx @changesets/cli@^2.29.5",
"lint": "oxlint",
"lint:fix": "oxlint --fix",
"clean": "turbo run clean",
"test": "turbo run test",
"test:int": "pnpm test:int:deps && turbo run test:int ; pnpm test:int:deps:down",
"test:int:deps": "docker compose -f int-test-deps-docker-compose.yml up -d",
"test:int:deps:down": "docker compose -f int-test-deps-docker-compose.yml down",
"test:exports:docker": "docker compose -f internal/environment_tests/docker-compose.yml up --force-recreate",
"format": "oxfmt",
"format:check": "oxfmt --check",
"release": "pnpm changeset publish"
},
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": "pnpm run lint",
"*": "pnpm run format --no-error-on-unmatched-pattern"
},
"devDependencies": {
"@changesets/changelog-github": "^0.6.0",
"@swc/core": "^1.3.90",
"@tsconfig/recommended": "^1.0.3",
"@types/d3": "^7",
"@types/semver": "^7",
"cheerio": "^1.0.0-rc.12",
"cheminfo-types": "^1.4.0",
"d3": "^7.9.0",
"eslint-plugin-no-instanceof": "^1.0.1",
"lint-staged": "^16.4.0",
"oxfmt": "^0.42.0",
"oxlint": "^1.55.0",
"readline": "^1.3.0",
"semver": "^7.6.3",
"tslab": "^1.0.21",
"tsx": "^4.19.3",
"turbo": "^2.5.4",
"typescript": "^4.9.5 || ^5.4.5"
},
"pnpm": {
"overrides": {
"@langchain/core": ">=1.1.40",
"langchain": ">=1.3.0",
"@langchain/langgraph-sdk": "workspace:*",
"@langchain/langgraph-checkpoint": "workspace:*",
"cheerio": "^1.0.0-rc.12",
"semver": "^7.0.0",
"zod": "^4.3.5",
"axios": ">=1.15.0",
"qs": ">=6.14.2",
"dompurify": ">=3.4.0",
"follow-redirects": ">=1.16.0",
"langsmith@<0.5.19": ">=0.5.19 <1",
"minimatch@<4": ">=3.1.4 <4",
"minimatch@>=5 <6": ">=5.1.8 <6",
"minimatch@>=9": ">=9.0.7",
"rollup@2": ">=4.59.0",
"handlebars": ">=4.7.9",
"path-to-regexp@>=8": ">=8.4.0",
"picomatch@<3": ">=2.3.2 <3",
"picomatch@>=4": ">=4.0.4",
"undici@<7": ">=6.24.0 <7",
"undici@>=7": ">=7.24.0",
"fast-xml-parser": ">=5.5.6",
"lodash": ">=4.18.0",
"lodash-es": ">=4.18.0",
"brace-expansion@>=2 <3": ">=2.0.3 <3",
"brace-expansion@>=4": ">=5.0.5",
"yaml@>=2 <2.8.3": ">=2.8.3",
"protobufjs@>=7 <8": ">=7.5.5 <8",
"basic-ftp@>=5 <6": ">=5.3.0 <6",
"vite@>=7 <8": ">=7.3.2",
"defu@>=6 <7": ">=6.1.5 <7"
},
"onlyBuiltDependencies": [
"@swc/core",
"better-sqlite3",
"cpu-features",
"esbuild",
"msw",
"protobufjs",
"sharp",
"ssh2",
"zeromq"
]
}
}