[Aikido] Fix 11 security issues in langsmith, form-data, uuid and 1 more - #29
[Aikido] Fix 11 security issues in langsmith, form-data, uuid and 1 more#29aikido-autofix[bot] wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 4 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit bcdc272. Configure here.
| "@langchain/core": "^0.3.3", | ||
| "@opentelemetry/auto-instrumentations-node": "^0.50.0", | ||
| "@langchain/core": "^1.1.29", | ||
| "@opentelemetry/auto-instrumentations-node": "^0.76.0", |
There was a problem hiding this comment.
Incompatible OpenTelemetry package versions
High Severity
@opentelemetry/auto-instrumentations-node was bumped to ^0.76.0, which targets OpenTelemetry JS SDK 2.0 and depends on @opentelemetry/sdk-node ^0.218.0, while @opentelemetry/sdk-node stays at ^0.53.0. The Vercel integration test constructs NodeSDK with instrumentations from that newer package, so tracing setup can fail or behave incorrectly at runtime.
Reviewed by Cursor Bugbot for commit bcdc272. Configure here.
| "jest-environment-jsdom": "^29.6.2", | ||
| "langchain": "^0.3", | ||
| "lerna": "^8.1.8", | ||
| "langchain": "^1.2.2", |
There was a problem hiding this comment.
LangChain 1.x breaks ConversationChain import
High Severity
langchain is upgraded to ^1.2.2, but integration tests still import ConversationChain from langchain/chains. In LangChain JS v1 that API moved to @langchain/classic, and langchain@1.5.4 no longer ships a chains entrypoint, so the LangChain integration suite fails on import.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit bcdc272. Configure here.
| "jest-environment-jsdom": "^29.6.2", | ||
| "langchain": "^0.3", | ||
| "lerna": "^8.1.8", | ||
| "langchain": "^1.2.2", |
There was a problem hiding this comment.
Stale langchain peer dependency range
Medium Severity
The monorepo now installs langchain ^1.2.2, but langfuse-langchain still declares a peer range of >=0.0.157 <0.4.0. That leaves an unmet peer dependency in the workspace and advertises that LangChain 1.x is unsupported even though tests now target it.
Reviewed by Cursor Bugbot for commit bcdc272. Configure here.
| "@babel/preset-typescript": "^7.24.7", | ||
| "@langchain/core": "^0.3.3", | ||
| "@opentelemetry/auto-instrumentations-node": "^0.50.0", | ||
| "@langchain/core": "^1.1.29", |
There was a problem hiding this comment.
Node engine understates new requirements
Medium Severity
engines.node remains >=18, and CI still matrices Node 18, but the upgrade pulls uuid@14 via @langchain/community and LangChain 1.x, both of which require Node 20+. On Node 18, install/runtime support for those packages is outside their supported matrix.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit bcdc272. Configure here.
|
Closed by Aikido: a new AutoFix has been created → #39 |


Upgrade langsmith, form-data, uuid, and brace-expansion to fix prototype pollution, CRLF injection, buffer overflow, and untrusted deserialization vulnerabilities.
✅ langsmith (0.2.5 => 0.6.0): This codebase does not directly import or use the
langsmithpackage. It only appears as a transitive dependency throughlangchain, which is used as a peer dependency inlangfuse-langchainand as a dev dependency for testing. The breaking changes in langsmith (removal of legacy evaluators, AI SDK exporter, wrapAIModel, and pydantic v2 bump) do not affect this codebase.uuid (10.0.0 => 11.1.1): This codebase does not directly import or use the
uuidpackage. All UUID generation uses Node.js's built-incrypto.randomUUID()function. The uuid package only appears as a transitive dependency throughlangchain. The breaking changes in uuid v11 (refactored v1/v7 internal state, TypeScript port, and Node 16-20 support) do not affect this codebase. Additionally, the codebase requires Node >=18, which is within uuid v11's supported range.All breaking changes by upgrading uuid from version 10.0.0 to 14.0.1 (CHANGELOG)
cryptois now expected to be globally defined (requires node@20+)v3(),v5(), andv6()now throw aRangeErrorifoffset < 0oroffset + 16 > buf.length(previously allowed out-of-bounds writes with invalid offset)All breaking changes by upgrading brace-expansion from version 2.0.1 to 5.0.9 (CHANGELOG)
✅ 11 CVEs resolved by this upgrade, including 2 critical 🚨 CVEs
This PR will resolve the following CVEs:
This issue affects form-data: < 2.5.4, 3.0.0 - 3.0.3, 4.0.0 - 4.0.3.
Note
Medium Risk
LangChain 0.3→1.x is a major upgrade for integration tests and langfuse-langchain compatibility; transitive security pins may affect Node/uuid behavior in downstream installs.
Overview
Bumps LangChain from 0.3 to ^1.2.2 and @langchain/core / @langchain/community to 1.x in the root devDependencies and
integration-test/modules, aligning integration tests with LangChain’s major release line.Also upgrades lerna (8 → 9), @opentelemetry/auto-instrumentations-node (0.50 → 0.76), and adds a Yarn
resolutionsentry forcingbrace-expansion5.0.9 so transitive installs pick up patched versions (per the security remediation for langsmith, form-data, uuid, and brace-expansion—typically via lockfile updates not shown in this diff).Review focus: LangChain 1.x can break LangChain integration tests and any APIs that still assume 0.3; confirm
yarn test:langchain/test:modulesafter install.Reviewed by Cursor Bugbot for commit bcdc272. Bugbot is set up for automated code reviews on this repo. Configure here.