Skip to content

fix(security): resolve CRITICAL and HIGH Dependabot vulnerabilities #1728

Description

@ajile-in

Summary

Resolve all CRITICAL and HIGH severity Dependabot alerts (55 total: 3 critical, 32 high, 20 medium).

Phases

Phase 1 — Remove Unused Direct Dependencies (0 risk, ~21 alerts)

Remove packages that are never imported in any source file:

  • handlebars — 9 alerts (1 critical)
  • protobufjs — 10 alerts (5 high)
  • form-data — 2 alerts (1 critical)
  • auth0-js — 1 alert (1 high)

Validation: pnpm install && npx tsc --noEmit && npx jest --config jest.ci.config.js
Tests needed: None — no code changes.

Phase 2 — Direct Dependency Bumps (low risk, ~12 alerts)

  • axios ^1.18.0 → ^1.19.0 (8 alerts: 5 high, 3 medium)
  • qs ^6.15.3 → latest 6.x (1 medium)
  • uuid ^9.0.1 → latest 9.x (3 medium)

Tests needed:

  • libs/common/src/http-client.integration.spec.ts — verify HttpService works
  • libs/client-registration/src/client-registration.service.spec.ts — verify URL serialization
  • Full test suite for uuid usage across 14 files

Phase 3 — Update Parent Packages (~6 transitive alerts)

  • socket.io-client → latest 4.x (fixes socket.io-parser 1 high)
  • @opentelemetry/sdk-node → latest (fixes @opentelemetry/core 1 med, propagator-jaeger 1 high)
  • puppeteer → latest 21.x/22.x (fixes extract-zip 1 high, ws 2 high)

Tests needed:

  • apps/api-gateway/src/tracer.integration.spec.ts
  • Socket.io paths in agent-service and issuance

Phase 4 — pnpm.overrides for Transitive Vulns (~16 alerts)

  • brace-expansion (6 high)
  • minimatch (1 high)
  • tar-fs (3 high)
  • fast-uri (3 high)
  • ip-address (3 med/high)
  • js-yaml (3 high, 1 medium)

Tests needed: Full test suite + manual smoke test

Phase 5 — Accepted Risk (no fix available)

  • websocket-driver — CRITICAL, not directly used, monitor upstream
  • request — MEDIUM, deprecated, remove if unused
  • tough-cookie — MEDIUM, transitive of request
  • @babel/core — LOW, dev-only

Acceptance Criteria

  • All CRITICAL and HIGH alerts resolved or documented as accepted risk
  • npx tsc --noEmit passes
  • npx jest --config jest.ci.config.js passes
  • No runtime behavior changes in production code paths

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions