mirror of
https://github.com/langchain-ai/langgraphjs.git
synced 2026-07-22 09:05:28 -04:00
7f3320cda8
## 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>
98 lines
2.9 KiB
JSON
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"
|
|
]
|
|
}
|
|
}
|