Skip to content

fix(deps): clear bun audit findings via lockfile refresh and overrides - #103

Merged
yahyafakhroji merged 1 commit into
mainfrom
fix/audit-transitive-deps
Jul 24, 2026
Merged

fix(deps): clear bun audit findings via lockfile refresh and overrides#103
yahyafakhroji merged 1 commit into
mainfrom
fix/audit-transitive-deps

Conversation

@yahyafakhroji

Copy link
Copy Markdown
Collaborator

Summary

Unblocks main CI, which is failing on the blocking bun audit step in Supply Chain (audit + SBOM) (failing run) with 14 vulnerabilities (3 high, 10 moderate, 1 low). All findings are in transitive dependencies — newly published advisories against the existing lockfile, not caused by any code change.

Changes

bun.lock regenerated within declared ranges (note: bun update alone does not fix these — it only bumps direct deps), picking up:

Package Fix Advisories cleared
axios 1.17.0 → 1.18.1 1 high + 9 moderate (via start-server-and-test › wait-on)
brace-expansion 2.1.1 → 2.1.2, 5.0.6 → 5.0.8 2 high (GHSA-3jxr-9vmj-r5cp, via minimatch consumers)
dompurify 3.4.11 → 3.4.12 1 low (GHSA-c2j3-45gr-mqc4, via @datum-cloud/datum-ui › isomorphic-dompurify)

Two additions to the existing security-pin overrides block:

  • @hono/node-server: ^2.0.5 — the patch for GHSA-frvp-7c67-39w9 (Windows-only path traversal in serve-static, dev-server only) is outside @hono/vite-dev-server's declared ^1.19.11 range; unreachable without a react-router-hono-server v3 major upgrade. Dev server verified working on 2.0.11.
  • @bufbuild/protobuf: 2.12.0 — the refresh pulled 2.13.0, which breaks TS inference against @zitadel/proto generated code (Message<string> errors in app/modules/auth/providers/zitadel/user.ts). Pinned until regenerated protos or an upstream fix allow unpinning.

Reviewer note

The refresh also moves other in-range deps, most notably @datum-cloud/datum-ui 1.3.2 → 1.6.0 — the one bump that could carry visible UI changes.

Test plan

  • bun audit → 0 vulnerabilities (exit 0)
  • bun run typecheck green
  • bun run lint:ci green
  • i18n catalogs fresh under lingui 6.5 (extract + compile → no diff)
  • Dev server boots with @hono/node-server@2.0.11 override; /healthz and /id/login return 200
  • bun run test:e2e:fast — production build + core-signin spec 4/4 passing
  • Component unit tests — running locally; CI shards will confirm

Regenerate bun.lock within declared ranges to pick up patched
transitive deps flagged by the blocking audit on main:

- axios 1.17.0 -> 1.18.1 (1 high, 9 moderate advisories)
- brace-expansion 2.1.1 -> 2.1.2 / 5.0.6 -> 5.0.8 (GHSA-3jxr-9vmj-r5cp)
- dompurify 3.4.11 -> 3.4.12 (GHSA-c2j3-45gr-mqc4)

Two new overrides:

- @hono/node-server ^2.0.5: patch for GHSA-frvp-7c67-39w9 is outside
  @hono/vite-dev-server's ^1.19.11 range; dev server verified working
  on 2.0.11
- @bufbuild/protobuf 2.12.0: 2.13.0 breaks type inference against
  @zitadel/proto generated code (Message<string> errors in
  zitadel/user.ts)
@yahyafakhroji yahyafakhroji self-assigned this Jul 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test Summary

Job Status
E2E (fast, fake provider) ✅ success
Unit Tests (component) (0) ✅ success
Unit Tests (component) (1) ✅ success
Unit Tests (component) (2) ✅ success

View workflow run

@yahyafakhroji
yahyafakhroji enabled auto-merge July 24, 2026 00:37
@yahyafakhroji
yahyafakhroji merged commit 5ba6b3f into main Jul 24, 2026
16 of 18 checks passed
@yahyafakhroji
yahyafakhroji deleted the fix/audit-transitive-deps branch July 24, 2026 00:45
yahyafakhroji added a commit that referenced this pull request Jul 25, 2026
The Supply Chain gate blocks on two high-severity advisories that pre-date this
branch (which changes no dependency files) and are unfixed on main — PR #103's
overrides cleared undici/form-data/dompurify/esbuild but never these two.

GHSA-mh99-v99m-4gvg  brace-expansion DoS. Reaches the tree through seven
  parents' pinned minimatch versions, which span different brace-expansion
  majors, so no single override range satisfies every parent.

GHSA-qwww-vcr4-c8h2  react-router RSC-mode CSRF bypass. Not reachable in this
  app: the vulnerable path is RSC mode, and react-router.config.ts runs plain
  framework SSR (ssr: true, no RSC entry, plugin, or package). Fixed only in
  >=8.3.0, a major bump from the pinned ^7.18.1 that needs its own migration PR
  with full regression coverage.

Ignored per this job's own documented policy, with both justifications recorded
inline. Verified locally: bun audit with both --ignore flags exits 0.
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