[Aikido] Fix 32 security issues in axios, form-data, diff - #42
[Aikido] Fix 32 security issues in axios, form-data, diff#42aikido-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 2 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 e9aa4f0. Configure here.
| "langchain": "^0.3.6", | ||
| "openai": "^4.72.0", | ||
| "langfuse-langchain": "*" | ||
| "langchain": "^1.2.2", |
There was a problem hiding this comment.
LangChain 1.x breaks module tests
High Severity
Bumping langchain and @langchain/community to 1.x leaves the module tests without a compatible @langchain/core. Those tests import @langchain/core/prompts and @langchain/openai, but @langchain/core is a required 1.x peer and is absent from package.json and yarn.lock. Yarn Classic will not install that peer, so test:tsc-* / test:ts-* resolve the root 0.3.3 core (or fail to resolve it), which is incompatible with @langchain/openai@1.5.10 and langchain@1.5.10. Local langfuse-langchain also peers langchain <0.4.0.
Reviewed by Cursor Bugbot for commit e9aa4f0. Configure here.
| "langchain": "^0.3.6", | ||
| "openai": "^4.72.0", | ||
| "langfuse-langchain": "*" | ||
| "langchain": "^1.2.2", |
There was a problem hiding this comment.
Workspace lockfile omits LangChain 1.x
Medium Severity
integration-test/modules is a root workspace, but root yarn.lock still pins @langchain/community@^0.3 and langchain@^0.3. CI runs yarn install at the repo root, so the committed lockfile no longer matches the workspace manifest. @langchain/community is only declared by this workspace, so the next install can hoist community 1.x for langfuse-integration-langchain.spec.ts as well.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit e9aa4f0. Configure here.


Problem
Upgrade axios, form-data, and diff to fix critical SSRF, proxy bypass, prototype pollution, and HTTP parameter pollution vulnerabilities.
Changes
Security Impact — CVE vulnerabilities fixed by this PR:
✅ 32 CVEs resolved by this upgrade, including 5 critical 🚨 CVEs
This PR will resolve the following CVEs:
data:scheme URLs that bypass memory limits, causing unbounded memory allocation and process crashes (DoS) on Node.js. The issue affects versions starting from 0.28.0 and ignoresmaxContentLength/maxBodyLengthprotections.This issue affects form-data: < 2.5.4, 3.0.0 - 3.0.3, 4.0.0 - 4.0.3.
parsePatchandapplyPatchmethods are vulnerable to denial-of-service attacks when processing patches with specific line break characters (\r,\u2028,\u2029) in filename or patch headers, causing infinite loops and memory exhaustion or ReDoS attacks.Breaking Changes & Upgrade Impact — prefer Warnings / Cautions /⚠️ sections over implementation sections (upgrade risks, breaking changes, manual migration steps):
⚠️ Breaking changes analysis not available for: axios
✅ No breaking changes for: form-data, diff
Fix Details / Technical Implementation (detailed write-up of what was changed and why):
🤖 Remediation details
Fix security vulnerabilities in
axios,form-data,diff,@langchain/community, andlangsmith—integration-test/modulesShort summary
This PR remediates security vulnerabilities in five npm packages:
axios,form-data,diff,@langchain/community, andlangsmith. Changes are confined tointegration-test/modules/package.json(manifest spec updates) andintegration-test/modules/yarn.lock(resolved version updates). The@langchain/communityandlangchaindirect dependency specs required semver-major bumps (0.x → 1.x), which is the minimum change needed to reach patched releases of@langchain/communityand to pull in alangsmithrelease that satisfies the required floor.axios
axioshad no parent edges in the lockfile, indicating it was a former direct dependency whose manifest entry had been dropped but whose lockfile entry remained stale at1.6.2. The fix adds"axios": "^1.18.0"explicitly todependenciesinintegration-test/modules/package.jsonand refreshes the lockfile selector from^1.5.0to^1.18.0, resolving to1.20.0. This clears the full set of axios CVEs, which required a minimum of1.18.0.form-data
form-datais a transitive dependency pulled in by bothaxiosand@types/node-fetchunder the^4.0.0range. Because that range already admits4.0.6, no manifest change was needed — a lockfile selector refresh viayarn upgrade 'form-data@^4.0.0'was sufficient to move the resolved version from4.0.0to4.0.6. The lockfile entry now covers both the^4.0.0and^4.0.6selectors at4.0.6.diff
diffis a transitive dependency ofts-node, which declaresdiff@^4.0.1. That range already admits4.0.4, so a lockfile selector refresh viayarn upgrade 'diff@^4.0.1'was sufficient to move the resolved version from4.0.2to4.0.4without any manifest change. After the full standalone lockfile was regenerated (withts-nodeabsent from the direct dependency tree),diffno longer appears as a standalone entry, but was resolved at4.0.4during the upgrade pass.@langchain/community
@langchain/communityis a direct dependency declared as"^0.3"inintegration-test/modules/package.json, resolving to0.3.59. The patched versions require>=1.1.14(CVE-2026-26019) and>=1.1.18(CVE-2026-27795), both of which are semver-major releases relative to the installed0.3.xline. The manifest spec was bumped to"^1.1.18", resolving to1.1.29in the lockfile. This major bump also removes@langchain/community's ownlangsmith@^0.3.67dependency edge, contributing to thelangsmithfix.langsmith
langsmithis a transitive dependency pulled in by both@langchain/community@0.3.59(^0.3.67) andlangchain@0.3.37(^0.3.67), resolving to the vulnerable0.3.87. The fix requires>=0.4.6. Bumping@langchain/communityto1.xremoves itslangsmithedge, butlangchain@0.3.xstill declaredlangsmith@^0.3.67, keeping the vulnerable version in the tree. Thelangchaindirect dependency spec was therefore also bumped from"^0.3.6"to"^1.2.2"— the firstlangchainrelease that declareslangsmith@">=0.4.0 <1.0.0"— resolving tolangchain@1.5.10andlangsmith@0.9.0in the lockfile. The local first-partylangfuse-langchainpackage carries a peer constraint oflangchain: ">=0.0.157 <0.4.0", which produces a peer mismatch warning under Yarn Classic but does not block resolution; this is the minimum necessary consequence of reaching a patchedlangsmith.Version changes
axios1.6.2(lockfile^1.5.0)1.20.0(lockfile^1.18.0)^1.18.0form-data4.0.04.0.6^4.0.0rangediff4.0.24.0.4^4.0.1range@langchain/community0.3.59(^0.3)1.1.29(^1.1.18)langchain0.3.37(^0.3.6)1.5.10(^1.2.2)langsmithCVE fix;langchain@1.2.2is first release admittinglangsmith@>=0.4.0langsmith0.3.870.9.0@langchain/communityandlangchainparent bumpsfollow-redirects1.15.31.16.0axiosbump to1.20.0proxy-from-env1.1.02.1.0axiosbump to1.20.0https-proxy-agent5.0.1axios@1.20.0Release info Sub-libraries affected
Bump level
Libraries affected
Changelog notes
Note
Medium Risk
Semver-major LangChain upgrades in the integration-test module may break langfuse-langchain peer compatibility or test behavior; axios/form-data/diff bumps are low risk lockfile-only fixes elsewhere.
Overview
Security-focused dependency updates in
integration-test/modules, with matching lockfile refreshes at the repo root.The integration test module adds explicit
axios^1.18.0 (resolves to 1.20.0) and major-bumps LangChain:@langchain/communityfrom ^0.3 to ^1.1.18 andlangchainfrom ^0.3.6 to ^1.2.2, so patchedlangsmithand community releases land in the tree.integration-test/modules/yarn.lockis regenerated for the new LangChain 1.x graph (e.g.@langchain/classic, langgraph, neweropenai/zodtransitives).Root
yarn.lockpicks up axios 1.20.0 under^1.5.0, form-data 4.0.6, and diff 4.0.4 without manifest edits elsewhere—mostly transitive resolution alignment after the module upgrade pass.No integration test source files change; risk is runtime/API compatibility of
langfuse-langchainwith langchain 1.x (peer range may warn) and whether module tests still pass against the new stack.Reviewed by Cursor Bugbot for commit e9aa4f0. Bugbot is set up for automated code reviews on this repo. Configure here.