Skip to content

[Aikido] Fix 11 security issues in langsmith, form-data, uuid and 1 more - #39

Open
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-100294681-64t7
Open

[Aikido] Fix 11 security issues in langsmith, form-data, uuid and 1 more#39
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-100294681-64t7

Conversation

@aikido-autofix

@aikido-autofix aikido-autofix Bot commented Aug 29, 2026

Copy link
Copy Markdown

Problem

Upgrade langsmith, form-data, uuid, and brace-expansion to fix prototype pollution, CRLF injection, buffer overflow, and untrusted deserialization vulnerabilities.

Changes

✅ 11 CVEs resolved by this upgrade, including 2 critical 🚨 CVEs

This PR will resolve the following CVEs:

Issue Severity           Description
CVE-2026-40190
🚨 CRITICAL
[langsmith] Incomplete prototype pollution fix in vendored lodash allows attackers to pollute Object.prototype via constructor.prototype traversal when processing data through the createAnonymizer() API, affecting all objects in the Node.js process.
CVE-2026-45134
HIGH
[langsmith] Prompt pull methods deserialize untrusted manifest data from public prompts without validation, allowing attackers to inject malicious LangChain objects and configurations that execute arbitrary code during deserialization (RCE).
CVE-2026-41182
MEDIUM
[langsmith] Output redaction controls fail to apply to streaming token events, allowing sensitive LLM output to bypass redaction and leak via run events in LangSmith. This information disclosure vulnerability affects applications relying on redaction to prevent sensitive data storage.
CVE-2025-7783
🚨 CRITICAL
[form-data] Use of Insufficiently Random Values vulnerability in form-data allows HTTP Parameter Pollution (HPP). This vulnerability is associated with program files lib/form_data.Js.

This issue affects form-data: < 2.5.4, 3.0.0 - 3.0.3, 4.0.0 - 4.0.3.
CVE-2026-12143
HIGH
[form-data] A CRLF injection vulnerability in the field and filename arguments allows attackers to inject headers or multipart parts into requests, potentially enabling form field manipulation or bypass attacks when untrusted input is used as field names or filenames.
CVE-2026-41907
HIGH
[uuid] A buffer overflow vulnerability allows v3, v5, and v6 UUID functions to write beyond caller-provided buffer boundaries when given small buffers or large offsets, causing silent data corruption. This can lead to memory corruption and potential code execution or information disclosure.
CVE-2026-14257
HIGH
[brace-expansion] Denial of service via memory exhaustion when expand() processes chained brace groups, allowing attackers to crash applications with small inputs by generating progressively longer result strings that exceed memory limits.
CVE-2026-69152
HIGH
[brace-expansion] A memory exhaustion and event loop blocking vulnerability exists in the expand() function when processing attacker-controlled input with comma-alternatives or padded sequences, bypassing previous DoS protections.
CVE-2026-13149
MEDIUM
[brace-expansion] A denial of service vulnerability exists in the expand() function due to exponential-time complexity when processing consecutive non-expanding brace groups, allowing attackers to cause significant CPU consumption and event-loop blocking.
CVE-2026-33750
LOW
[brace-expansion] A brace pattern with zero step value causes an infinite loop, leading to denial of service through process hangs and excessive memory allocation. The vulnerability affects string expansion operations when malicious or malformed patterns are processed.
CVE-2025-5889
LOW
[brace-expansion] A regular expression complexity vulnerability in the expand function allows remote attackers to cause denial of service through inefficient regex processing, though exploitation is difficult and requires high attack complexity.
⚠️ Incomplete breaking changes analysis (2/4 analyzed)

⚠️ Breaking changes analysis not available for: langsmith, brace-expansion

✅ The package upgrades for langsmith (0.2.5 => 0.6.0) and uuid (10.0.0 => 11.1.1) do not affect this codebase.

Both packages are transitive dependencies through langchain@^0.3 and are not directly imported or used in the codebase:

  • langsmith: No direct imports found. The only reference (LANGSMITH_HIDDEN_TAG in langfuse-langchain/src/callback.ts:4) is a string constant unaffected by langsmith API changes.

  • uuid: No direct imports found. The codebase uses Node.js's built-in crypto.randomUUID() instead of the uuid package.

The Node.js version requirement (>=18) is compatible with uuid 11.x's supported range (Node 16-20).

All breaking changes by upgrading uuid from version 10.0.0 to 14.0.2 (CHANGELOG)

Version Description
11.0.0
Refactored v1 internal state and options logic
11.0.0
Refactored v7 internal state and options logic
11.0.0
Ported to TypeScript
11.0.0
Updated node support matrix to only support node 16-20
12.0.0
Updated to typescript@5.2
12.0.0
Removed CommonJS support
12.0.0
Dropped node@16 support
13.0.0
Made browser exports the default
14.0.0
crypto is now expected to be globally defined (requires node@20+)
14.0.0
Dropped node@18 support
14.0.0
Upgraded minimum supported TypeScript version to 5.4.3
14.0.0
v3(), v5(), and v6() now throw a RangeError if offset < 0 or offset + 16 > buf.length (previously allowed out-of-bounds writes with invalid offset)

Release info Sub-libraries affected

Bump level

  • Major
  • Minor
  • Patch

Libraries affected

  • All of them
  • langfuse
  • langfuse-node

Changelog notes

  • Added support for X

Note

Medium Risk
Major LangChain and peer-range changes can break integrators on 0.3.x; risk is mostly compatibility and CI/integration test behavior, not auth or data paths.

Overview
Bumps the LangChain stack from 0.3 to 1.2.x (langchain, @langchain/core, @langchain/community in integration tests) and refreshes related dev tooling (lerna 10, @opentelemetry/auto-instrumentations-node 0.76).

langfuse-langchain now declares langchain peer >=0.0.157 <2.0.0 (was capped below 0.4), so consumers can install LangChain 1.x alongside the integration package.

No application source changes in the diff—only package.json version pins, aligned with security-driven transitive upgrades (e.g. langsmith, form-data, uuid) described in the PR.

Reviewed by Cursor Bugbot for commit 6d226b9. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 6d226b9. Configure here.

Comment thread package.json
"jest-environment-jsdom": "^29.6.2",
"langchain": "^0.3",
"lerna": "^8.1.8",
"langchain": "^1.2.28",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LangChain 1.x breaks ConversationChain import

High Severity

The LangChain bump to 1.x leaves a ConversationChain import from langchain/chains, which v1 moved to @langchain/classic/chains and no longer exports from the main package. Integration tests fail at import time, so the LangChain upgrade is not actually exercised.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6d226b9. Configure here.

Comment thread package.json
"langchain": "^0.3",
"lerna": "^8.1.8",
"langchain": "^1.2.28",
"lerna": "^10.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Lerna 10 requires Node 22

High Severity

lerna was jumped from 8.x to 10.x, which is ESM-only and requires Node 22.13+. Repo engines and CI still use Node 18/20, so npx lerna publish from the documented release flow fails on the supported Node versions.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6d226b9. Configure here.

Comment thread package.json
"@langchain/core": "^0.3.3",
"@opentelemetry/auto-instrumentations-node": "^0.50.0",
"@langchain/core": "^1.1.29",
"@opentelemetry/auto-instrumentations-node": "^0.76.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

OpenTelemetry SDK versions are incompatible

Medium Severity

@opentelemetry/auto-instrumentations-node was raised to 0.76, which needs @opentelemetry/sdk-node 0.218+ (OTEL JS 2.x). The project still pins sdk-node@^0.53.0. The Vercel integration test constructs NodeSDK from 0.53 with 0.76 instrumentations, which is an unsupported mix.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6d226b9. Configure here.

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