Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix(deps): bump axios, socket.io-client, uuid to patch critical CVEs#179

Open
natansil wants to merge 1 commit into
mainbase44/javascript-sdk:mainfrom
identifying-axios-dependency-source-in-sdkbase44/javascript-sdk:identifying-axios-dependency-source-in-sdkCopy head branch name to clipboard
Open

fix(deps): bump axios, socket.io-client, uuid to patch critical CVEs#179
natansil wants to merge 1 commit into
mainbase44/javascript-sdk:mainfrom
identifying-axios-dependency-source-in-sdkbase44/javascript-sdk:identifying-axios-dependency-source-in-sdkCopy head branch name to clipboard

Conversation

@natansil

@natansil natansil commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

Why

A Wiz security scan (wizcli v1.48, scan dir, default policies) of TaskFlow app, 712 files — surfaced 46 dependency CVEs across 14 packages, including 4 CRITICAL CVEs, all rooted in axios@1.13.5.

The app does not declare axios in its own package.json — it was only present in the lockfile. npm why axios in the app confirmed the SDK is its only source:

axios@1.13.5
node_modules/axios
  axios@"^1.6.2" from @base44/sdk@0.8.31

Because every Base44 app ships @base44/sdk, every app inherits the vulnerable axios, and app owners can't fix it themselves — a local npm install axios@x conflicts with the SDK's range and gets reverted on the next resolution. The fix has to land here and propagate via an SDK release.

The critical CVEs (axios 1.13.5, fixed in 1.15.1/1.15.2)

  • CVE-2026-42033 — prototype-pollution-enabled response interception / HTTP transport hijack: an attacker who can pollute Object.prototype via a co-dependency can silently modify every JSON response or hijack the transport, exposing request credentials/headers/body
  • CVE-2026-42035, CVE-2026-42043, CVE-2026-42264 — related prototype-pollution / SSRF-adjacent issues in the same range
  • Plus several medium/low advisories resolved by the same bump

The scan also flagged platform-brought transitives: follow-redirects 1.15.11 (low), ws 8.18.3 (medium), socket.io-parser 4.2.5 (low), uuid 13.0.0 (medium) — all addressed here too.

Changes

Package Before After Resolved in lockfile
axios ^1.6.2 ^1.15.2 1.17.0
socket.io-client ^4.7.5 ^4.8.3 4.8.3
uuid ^13.0.0 ^13.0.2 13.0.2

Transitives now resolved: follow-redirects 1.16.0, ws 8.20.1 (via engine.io-client 6.6.5), socket.io-parser 4.2.6.

uuid stays on v13 deliberately — v14 is a breaking major and 13.0.2 covers the advisory.

Verification

  • npm ls axios ws socket.io-parser follow-redirects uuid — all patched versions, no duplicate old copies in the tree
  • npm test — 166/166 tests pass (16 files), including type tests
  • npm audit — runtime dependencies clean; the remaining findings are all in the vitest/vite/esbuild devDependency chain (dev-server-only advisories that never ship to apps; fixing them requires a breaking vitest 1→4 upgrade, left as separate work)

Out of scope

  • App-owned CVEs from the same scan (lodash, jspdf, postcss, dompurify, quill, react-router) — fixed per-app via the in-product security scanner
  • SAST findings from the scan — separate workstream, mostly false positives per security review
  • picomatch (vite/tailwind build chain devDep) and the vitest chain — dev-time only

Follow-up after merge

Cut a release and coordinate with the platform team so the new SDK version lands in the app scaffold/template, and existing apps pick it up on their next dependency resolution.

🤖 Generated with Claude Code

Wiz scan of a customer app flagged 4 critical CVEs in axios@1.13.5,
pulled in transitively via @base44/sdk. Bump direct deps so the fix
propagates to all apps on the next SDK release:

- axios ^1.6.2 -> ^1.15.2 (resolves 1.17.0; also bumps follow-redirects)
- socket.io-client ^4.7.5 -> ^4.8.3 (resolves ws 8.20.1, socket.io-parser 4.2.6)
- uuid ^13.0.0 -> ^13.0.2

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Jun 6, 2026

Copy link
Copy Markdown

Claude finished @natansil's task —— View job


Security Dependency Update Review

Review Checklist

  • Check for CLAUDE.md repository guidelines
  • Review package.json dependency changes
  • Analyze package-lock.json updates
  • Assess security implications and CVE coverage
  • Check for potential breaking changes
  • Review test coverage approach
  • Provide comprehensive feedback

Summary

This PR successfully addresses critical security vulnerabilities in the SDK's dependencies, particularly the 4 CRITICAL CVEs in axios. The changes are well-documented and thoroughly tested.

Code Quality and Best Practices ✅

The dependency updates follow best practices:

  • Using caret ranges (^) for minor version flexibility
  • Maintaining compatibility within major versions
  • Comprehensive testing (166/166 tests passing)
  • Clean npm audit for runtime dependencies

Security Analysis 🔒

Critical CVEs Addressed

The PR effectively patches the critical axios vulnerabilities (CVE-2026-42033, CVE-2026-42035, CVE-2026-42043, CVE-2026-42264) by updating:

  • axios: 1.13.5 → 1.17.0 (via ^1.15.2 range)

Additional Security Improvements

Transitive dependencies also updated:

  • follow-redirects: 1.15.11 → 1.16.0 ✅
  • ws: 8.18.3 → 8.20.1 ✅
  • socket.io-parser: 4.2.5 → 4.2.6 ✅

Potential Issues and Considerations ⚠️

1. Unusual Version Range for axios

The change from ^1.6.2 to ^1.15.2 appears counterintuitive (going to a "higher" minor version). This is actually correct because:

  • axios 1.15.x was released after 1.6.x (non-standard versioning)
  • The ^1.15.2 range correctly resolves to 1.17.0 in the lockfile
  • This ensures the SDK gets security patches while maintaining compatibility

Recommendation: Add a comment in package.json explaining this versioning quirk to prevent confusion.

2. Breaking Change Risk

All updates stay within major versions:

  • axios: v1 → v1 ✅
  • socket.io-client: v4 → v4 ✅
  • uuid: v13 → v13 ✅

The PR correctly notes that uuid v14 would be breaking and appropriately stays on v13.0.2.

Performance Considerations 🚀

No performance concerns identified. The updates are security patches with minimal functional changes.

Test Coverage ✅

The PR demonstrates excellent testing discipline:

  • All 166 tests passing across 16 files
  • Type tests included
  • Manual verification with npm ls and npm audit

Additional Recommendations

  1. Release Notes: Ensure the release notes clearly highlight this as a security update so consumers prioritize upgrading.

  2. Communication: As noted in the PR, coordinate with the platform team to ensure rapid adoption across all apps.

  3. Future Prevention: Consider implementing automated dependency scanning in CI to catch vulnerabilities earlier.

  4. Documentation: Document the axios version numbering issue to prevent future confusion.

Conclusion

This is a well-executed security patch that addresses critical vulnerabilities without introducing breaking changes. The thorough testing and clear documentation make this ready to merge. I recommend approval and expedited release to protect all downstream applications.

@github-actions

github-actions Bot commented Jun 6, 2026

Copy link
Copy Markdown

🚀 Package Preview Available!


Install this PR's preview build with npm:

npm i @base44-preview/sdk@0.8.31-pr.179.d377a1e

Prefer not to change any import paths? Install using npm alias so your code still imports @base44/sdk:

npm i "@base44/sdk@npm:@base44-preview/sdk@0.8.31-pr.179.d377a1e"

Or add it to your package.json dependencies:

{
  "dependencies": {
    "@base44/sdk": "npm:@base44-preview/sdk@0.8.31-pr.179.d377a1e"
  }
}

Preview published to npm registry — try new features instantly!

natansil added a commit that referenced this pull request Jun 6, 2026
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.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.