[Aikido] Fix 73 security issues in axios, form-data, next - #41
[Aikido] Fix 73 security issues in axios, form-data, next#41aikido-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 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fa0171b. Configure here.
| version "3.31.0" | ||
| resolved "https://registry.yarnpkg.com/langfuse/-/langfuse-3.31.0.tgz#9c2f27053cbd65b0b64c74a3fb27d6b217377e36" | ||
| integrity sha512-Qk2P4dNfiDGjbIjxBsurkRoyBUm5P4KdaeKdM65+IZosZ45TwOgv3AetmXbg+6bKIHbjkJZvOz+KFUmQ3I0AOg== |
There was a problem hiding this comment.
Lockfile drops yalc langfuse entries
Medium Severity
The lockfile now resolves langfuse, langfuse-node, and langfuse-core from the npm registry at 3.31.0, while package.json still declares them as file:.yalc/.... Yarn cannot match those specifiers to the new lockfile keys, so frozen installs fail and a normal install can pull the published SDK instead of the locally linked packages this example is meant to test.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit fa0171b. Configure here.


Problem
Upgrade axios and form-data to fix critical SSRF, prototype pollution, and proxy bypass vulnerabilities affecting HTTP requests and JSON parsing.
Changes
🤖 Remediation details
Fix security vulnerabilities in
axios,form-data, andnextShort summary
This PR remediates security vulnerabilities in three packages —
axios,form-data, andnext— affectingexamples/example-web-nextjs. The direct dependencynext(and its aligned siblingeslint-config-next) was bumped inpackage.json; the transitive dependenciesaxiosandform-datawere resolved to patched versions via a lockfile selector refresh, with all changes reflected inexamples/example-web-nextjs/yarn.lock.axios
axiosis a transitive dependency pulled in bylangfuse-node@3.31.0under the declared range^1.7.4. The lockfile entry for that selector was stale at1.7.8; because the existing^1.7.4range already permits1.18.0+, no manifest or parent change was required — runningyarn upgrade 'axios@^1.7.4'refreshed the lockfile entry to1.20.0, satisfying the minimum patched floor of1.18.0required across all listed CVEs.form-data
form-datais a transitive dependency ofaxios, declared byaxiosas^4.0.0. The lockfile was stale at4.0.0; when theaxiosselector was refreshed, Yarn resolvedaxios@1.20.0, which declaresform-data@^4.0.6, pulling the resolved version up to4.0.6— the minimum required to address all listedform-dataCVEs.next
nextis a direct dependency pinned exactly at14.2.10inpackage.json. It was bumped to15.5.24to satisfy the highest patched floor across all listed Next.js CVEs (AIKIDO-2026-553733 requires≥15.5.24). The siblingeslint-config-nextwas previously pinned at the same version asnext(13.4.13at the time of the originalnext@14.2.10install, forming a matched version group), so it was aligned to15.5.24in the same edit to keep the Next.js toolchain consistent.Version changes
next14.2.1015.5.24eslint-config-next13.4.1315.5.24next(same version group)axios1.7.81.20.0^1.7.4refreshed; parentlangfuse-node@3.31.0range already admitted patched versionform-data4.0.04.0.6axioswas refreshed to1.20.0(which declares^4.0.6)Release info Sub-libraries affected
Bump level
Libraries affected
Changelog notes
✅ No breaking changes from either the axios (1.7.8 => 1.18.0) or next.js (14.2.10 => 15.5.24) upgrades affect this codebase.
Axios Analysis:
The codebase uses axios only in
langfuse-node/src/fetch.tsandintegration-test/integration-utils.tsAll axios requests use simple, well-formed URLs without absolute URL combinations or baseURL configurations
No custom header manipulation with CRLF characters detected
No
maxBodyLengthormaxContentLengthconfigurations foundAll URLs are properly formatted with
http://orhttps://including the//separatorNext.js Analysis:
The Next.js example app (
examples/example-web-nextjs) is minimal and uses only basic featuresThe
next/imagecomponent usage has a properly formattedsrcattribute without leading/trailing spacesRoute handlers use
export const dynamic = "force-dynamic"which explicitly opts into dynamic rendering (unaffected by the removal of automatic static generation)No usage of deprecated features:
cookies(),headers(),params,searchParams,useMDXComponents,rootParams,legacyBehavior, server directives, cache directives, or AMPNo custom Next.js configuration that would be affected by the breaking changes
The codebase already requires Node.js >=18, which satisfies Next.js 15's minimum requirement of 18.18
All breaking changes by upgrading next from version 14.2.10 to 15.5.24 (CHANGELOG)
squooshin favor ofsharpas optional dependency for next/imageContent-Dispositiontoattachmentfor next/imagesrchas leading or trailing space in next/imagenext/headchildren reconciler by defaultgeoandipfromNextRequestnext lint"use server"and"use cache") at the same level will no longer be allowed.thisandargumentsin server functions: server functions can no longer usethisorarguments, which will break existing server functions that rely on these features.superin static class methods with server function directives: static class methods with server function directives cannot usesuper, breaking code that previously did so."use cache"is used withoutdynamicIOenabled: builds will now fail if"use cache"is used without enabling thedynamicIOflag.internal_disableSyncDynamicAPIWarningsflagcolorminfeature fromcssnanoexperimental.reactOwnerStackflagrootParams()is now a plain Promise (not exotic)--no-manglingCLI option fornext builddevIndicatorsoptionsappIsrStatusandbuildActivitydevIndicators.buildActivityPositionand renamed topositionoutput: exportis used with intercepting routesuseCacheis enabled and Edge runtime is usedrootParams()incachescopeforwardRefremoved from Link in App RouterlegacyBehaviorprop--turbopackflag withnext start, otherwise throws errorserver.mjsfor standalone withtype: moduleuseMDXComponentsargument removedexperimental.strictNextHeadremovedcookies&headersat runtime in Cache Componentsexperimental.dynamicIOrenamed toexperimental.cacheComponentsunstable_rootParamsdeprecated with warningSecurity Impact — CVE vulnerabilities fixed by this PR:
✅ 73 CVEs resolved by this upgrade, including 7 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.
/foobut not nested paths.DELETE/OPTIONSrequests allows attackers to bypass route restrictions and access unintended backend endpoints. An attacker could smuggle malicious requests to internal or admin routes through request boundary disagreement between proxy and backend.fetchcache keys are derived from lossy text decoding of request bodies, allowing distinct requests with different bodies to share cache entries and leak confidential response data between callers. The vulnerability affects the App Router and is fixed by keying the cache on raw body bytes instead.beforeInteractivescript serialization allows attackers to break script boundaries and execute arbitrary JavaScript in the browser (RCE).fetchresponses fails to account for request body differences, allowing unauthorized users to receive cached responses containing confidential data from other requests. This information disclosure vulnerability affects applications using the App Router.pagePropsdata instead of HTML under certain misconfigurations, potentially leading to information disclosure. The issue affects self-hosted deployments and can be mitigated by stripping thex-now-route-matchesheader and settingcache-control: no-store.Note
Medium Risk
Major Next.js upgrade in the example app plus patched HTTP stack; low production blast radius but possible build/runtime regressions and many framework behavior changes in Next 15.
Overview
Security-driven dependency bumps in
examples/example-web-nextjs: directnextand alignedeslint-config-nextmove from 14.2.10 / 13.4.13 to 15.5.24, withyarn.lockrefreshed for the full Next 15 toolchain (including optionalsharpfor image optimization).The lockfile update also pulls patched transitive HTTP clients used by
langfuse-node:axios(1.7.8 → 1.20.0) andform-data(4.0.0 → 4.0.6), addressing SSRF, proxy bypass, and prototype-pollution issues without manifest changes beyond Next.This is a major Next.js jump for a sample app only; reviewers should confirm
next build/next lintstill pass and be aware of Next 15 breaking changes if the example later adopts asynccookies/headers, middleware, or Server Actions.Reviewed by Cursor Bugbot for commit fa0171b. Bugbot is set up for automated code reviews on this repo. Configure here.