Skip to content

fix(deps): pin patched xmldom, axios, follow-redirects, qs, proxy-addr, shell-quote, joi, and grpc-js - #9287

Merged
waleedlatif1 merged 1 commit into
stagingfrom
fix/dep-security-2026-10-21
Oct 21, 2026
Merged

waleedlatif1 merged 1 commit into
stagingfrom
fix/dep-security-2026-10-21

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Adds exact security override pins (same major, all published ≥7 days ago) for transitive deps with reachable advisories:
    • @xmldom/xmldom 0.8.13 → 0.8.15 — used by samlify/xml-crypto (SAML ACS, pre-auth), mammoth and officeparser. Fixes quadratic-time parsing (an 80k-attribute element took ~7s to parse, now 77ms) and the requireWellFormed serializer bypasses
    • axios 1.19.0 → 1.20.0 (Daytona, Twilio) — fetch adapter ignored maxRedirects: 0, plus the prototype-pollution gadgets
    • follow-redirects 1.16.0 → 1.16.1 — cross-origin credential stripping with array-form headers
    • shell-quote 1.10.0 → 1.12.0 — @daytona/sdk resolved the vulnerable copy (quote() newline-after-comment injection)
    • proxy-addr 2.0.7 → 2.0.8, qs 6.15.2 → 6.16.0 (express/body-parser in the MCP and A2A SDKs; stripe, twilio)
    • joi 17.13.6 → 17.13.8 (isoDate ReDoS), @grpc/grpc-js 1.14.4 → 1.14.6
  • Lockfile diff is only these 8 packages; no other resolution moved
  • Held back (need a major version, or a fix only exists in a different major): image-size (pptxgenjs, 2.x), file-type (officeparser, 21.x), uuid 9, katex, postcss-selector-parser; dev/build-only: js-yaml 3, csv-parse 4, vite, esbuild, braces, source-map-js, moment, http-cache-semantics

Type of Change

  • Bug fix (security)

Testing

  • Red → green PoCs: one PoC per advisory, resolving each package exactly the way the app loads it (nested copies under @daytona/sdk, twilio, samlify, express).
    • On staging's lockfile, 7 PoCs are vulnerable: xmldom element-name injection, xmldom quadratic attributes, axios fetch redirect bypass, shell-quote injection, proxy-addr spoofing, qs arrayLimit bypass, joi isoDate ReDoS.
    • On this branch, all 7 are fixed.
    • The follow-redirects array-header leak did not reproduce on either version.
  • Differential behaviour run: 41 cases run through the same entry points on staging and this branch. 41/41 identical.
    • samlify SP/IdP round trip, configured like @better-auth/sso: assertion- and message-signed valid responses, plus tampered NameID, wrapped assertion, wrong signer, unsigned and malformed XML all rejected identically.
    • mammoth text and HTML, and officeparser on docx/pptx/odt.
    • qs: stripe indices/repeat stringify and body-parser extended parse.
    • shell-quote quote/parse.
    • axios over the HTTP adapter: JSON, form, params, same- and cross-origin redirects, 303, maxRedirects: 0, loop, 500, timeout, fetch adapter.
    • Twilio RequestClient and Daytona SDK get (found and 404) against a local server.
    • proxy-addr trust matrix (8 configs × 10 addresses), joi schemas, grpc-js unary with metadata and error.
  • vitest: 76 files covering SSO routes and application, file parsers, SMS, Daytona sandbox and MCP. 764/764 pass.
  • bun audit: 56 → 24 advisories; both criticals are gone.
  • biome check. Full type-check, audits and the suite run in CI.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@waleedlatif1
waleedlatif1 requested a review from a team as a code owner October 21, 2026 17:49
@vercel

vercel Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Oct 21, 2026 5:56pm UTC

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 2 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.

Turn on auto-fix | Re-trigger cubic

@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The PR appears safe to merge; no actionable issues were found.

Summary

Adds exact overrides for eight dependencies and updates bun.lock.

  • XML readers now use the patched xmldom release.
  • Outbound requests use patched axios and redirect handling.
  • Daytona command quoting uses the patched shell-quote release.
  • Express request handling uses patched address and query parsers.
  • Schema checks use the patched Joi release.
  • gRPC calls use the patched grpc-js release.

Reviews (1) · Last reviewed commit: "fix(deps): pin patched xmldom, axios, fo..." · Reviewed by Greptile

@waleedlatif1
waleedlatif1 merged commit c287577 into staging Oct 21, 2026
53 checks passed
@waleedlatif1
waleedlatif1 deleted the fix/dep-security-2026-10-21 branch October 21, 2026 17:56

This branch was successfully deployed

1 active deployment
Preview — 7511e2fb Deployed Oct 21, 2026 by vercel[bot]
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.

1 participant