Skip to content

chore(security): patch 5 Dependabot alerts (2026-04-30)#1574

Closed
PMerlet wants to merge 2 commits intomainfrom
security/2026-04-30
Closed

chore(security): patch 5 Dependabot alerts (2026-04-30)#1574
PMerlet wants to merge 2 commits intomainfrom
security/2026-04-30

Conversation

@PMerlet
Copy link
Copy Markdown
Member

@PMerlet PMerlet commented Apr 30, 2026

Summary

1 fixed, 3 ignored, 3 deferred, 1 resolutions added, 0 resolutions removed, 4 could-not-auto-fix. | label: 🔒 security applied

Fixed

Alert Package Ecosystem From → To Severity Bump
#340 fast-xml-parser npm 5.5.85.7.2 (resolved) medium resolution; @aws-sdk/xml-builder@3.972.16 pins the vulnerable 5.5.8

Ignored

Could not auto-fix

  • chore: allow to create alpha and beta branches specific for a package #330, fix(datasource-sequelize): serialize record to transform date to iso string  #331, chore: create firebase package directory #332, chore(firebase): add new empty classes for firebase #333 @fastify/express <= 4.0.4 (critical, middleware auth bypass via URL normalization gaps / path doubling in child plugin scopes).
    • Why no fix: the patched version is 4.0.5, but @fastify/express@4.x is built on fastify-plugin@^5.0.0, which hard-checks for fastify@5.x at registration time. The agent's packages/agent/test/framework-mounter.test.ts covers fastify v2/v3/v4 (declared via the fastify, fastify2, fastify4 aliased dev-deps and the peerDependency range ^1.1.0 || ^2.0.0 || ^3.0.0 || ^4.0.0). With @fastify/express@^4.0.5 in place, those registrations fail with FastifyError: fastify-plugin: @fastify/express - expected '5.x' fastify version, '3.29.5' is installed (and the same against 4.29.1).
    • What was attempted: bumped @fastify/express from ^1.1.0^4.0.5 in packages/agent/package.json (devDep + peerDep). Pushed in commit 268bf4d. CI failed in Linting & Testing (agent) at the Test code step with the version-mismatch error above. Reverted in commit 1a57b1d.
    • Next step (not done in this PR): migrating the agent to fastify 5.x (and dropping fastify 2/3/4 from peerDependencies / matrix tests) is a project-level breaking change that exceeds the scope of an automated security-fix PR. Tracking separately is recommended before the next vuln scan run.

Deferred

(Same root cause as #339 above — likely IGNORE on next run too.)

Resolutions added

  • feat: add collection hooks #340fast-xml-parser: ^5.7.0
    • Parent chain tried: plugin-aws-s3 → @aws-sdk/client-s3 → @aws-sdk/core → @aws-sdk/xml-builder → fast-xml-parser. @aws-sdk/xml-builder@3.972.16 (the version satisfying @aws-sdk/core's ^3.972.6) tightly pins fast-xml-parser to exactly 5.5.8.
    • Why no parent bump: newer @aws-sdk/xml-builder@3.972.20+ ships fast-xml-parser@5.7.2, but the version is selected transitively by @aws-sdk/core and not pinnable from our manifests without a deeper bump of the entire @aws-sdk family. A scoped resolution under @aws-sdk/xml-builder would be ideal but Yarn 1's nested-resolution syntax ("@aws-sdk/xml-builder/fast-xml-parser") was tried first and did not deduplicate the version (a second copy was added instead of overriding the existing one).
    • Placed in: root package.json (Yarn 1 ignores workspace-level resolutions).
    • Form: unconditional root entry (last-resort fallback). Acceptable here because fast-xml-parser only appears in this single chain — verified with yarn why fast-xml-parser.

Resolutions removed

None. Existing root resolutions (tar, micromatch, qs, axios, follow-redirects, lerna/**/glob, semantic-release, hono, @hono/node-server, langsmith, lodash, lodash-es) were sampled by removing each, re-running yarn install, and inspecting yarn why:

  • tar → without pin drops to tar@6.2.1 via sqlite3. Pin needed.
  • micromatch → without pin, semantic-release-slack-bot pulls 4.0.2 (vulnerable). Pin needed.
  • qs → without pin, body-parser/@nestjs/platform-express pull 6.13.0 (vulnerable). Pin needed.
  • The remaining entries are likely still-needed security pins; full removal-and-reinstall sweep was not performed for all 12 to keep this PR's scope contained. They will be re-audited in subsequent runs.

Risks

  • fast-xml-parser 5.5.8 → 5.7.2 is a minor bump within the same major. The @aws-sdk/xml-builder consumer code only uses fast-xml-parser for parsing AWS XML responses; the patched API surface (XMLParser/XMLBuilder) is unchanged in 5.7.x. No behavior change beyond the patched vuln expected.

Manual testing

Covered by CI (yarn lint + yarn test matrix per workspace).

Validation

✅ CI green (after cycle-2 revert of @fastify/express bump)

- Bump @fastify/express to ^4.0.5 in packages/agent
  (fixes #330 #331 #332 #333: critical middleware auth bypass)
- Add resolution forcing fast-xml-parser >= 5.7.0
  (fixes #340: medium XML comment/CDATA injection in XMLBuilder)
@fastify/express@^4.0.5 depends on fastify-plugin@5 which requires
fastify@5; the agent's framework-mounter tests register on fastify v3
and v4, which fail with FST_ERR_PLUGIN_VERSION_MISMATCH. Reverting the
bump until the agent migrates to fastify@5; #330#333 moved to 'Could
not auto-fix' on the PR.
@qltysh
Copy link
Copy Markdown

qltysh Bot commented Apr 30, 2026

Qlty


Coverage Impact

⬆️ Merging this pull request will increase total coverage on main by 0.01%.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

@PMerlet PMerlet closed this Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants