fix(security): heal composer/npm audit gates — 2026-07 advisory wave lockfile bumps - #559
Open
nash87 wants to merge 1 commit into
Open
fix(security): heal composer/npm audit gates — 2026-07 advisory wave lockfile bumps#559nash87 wants to merge 1 commit into
nash87 wants to merge 1 commit into
Conversation
Composer (prod, composer audit --locked --no-dev was red, 7 advisories): - guzzlehttp/guzzle 7.11.1 -> 7.13.2 (CVE-2026-55767, CVE-2026-55568) - guzzlehttp/psr7 2.11.0 -> 2.12.5 (CVE-2026-55766) - web-token/jwt-library 4.1.3 -> 4.1.7 (PKSA-237v-kv6c-dpkr high, PKSA-66dc-42nb-26yy high, PKSA-58h1-qnck-61bt, PKSA-qw7k-npv6-3pbk) parkhub-web npm (prod --audit-level=high was red; OSV gate red on dev too): - astro 6.4.5 -> 6.4.8 (GHSA-2pvr-wf23-7pc7 high SSRF, GHSA-jrpj-wcv7-9fh9 XSS) - vite (nested under astro/@astrojs/react) 7.3.2 -> 7.3.6 (GHSA-fx2h-pf6j-xcff high, GHSA-v6wh-96g9-6wx3) - undici 7.25.0 -> 7.28.0 (GHSA-vmh5-mc38-953g high + 4 more) - ws 8.20.1 -> 8.21.1 (GHSA-96hv-2xvq-fx4p high); requires relaxing the stale exact-pin override storybook>ws 8.20.1 -> ^8.21.0 in package.json - form-data 4.0.5 -> 4.0.6, js-yaml 4.1.1 -> 4.3.0 + 3.14.2 -> 3.15.0, joi 17.13.3 -> 17.13.4, @babel/core 7.29.0 -> 7.29.7, yaml-language-server 1.20.0 -> 1.23.0 (drops vulnerable nested yaml@2.7.1, GHSA-48c2-rrv3-qjmp), volar-service-* 0.0.70 -> 0.0.71, @astrojs/language-server 2.16.7 -> 2.16.12 root npm: @babel/core 7.29.0 -> 7.29.7 (GHSA-4x5r-pxfx-6jf8) osv-scanner.toml: remove the now-moot GHSA-48c2-rrv3-qjmp ignore (the vulnerable nested yaml copy no longer exists in any scanned lockfile). All bumps are in-range lockfile updates (composer update --no-install / npm audit fix --package-lock-only); no majors, no audit suppressions. Verified locally in this tree: - composer audit --locked --no-dev: clean (was 7 advisories / 3 packages) - composer audit --locked (incl dev): clean - npm audit --package-lock-only --omit=dev --audit-level=high (root): 0 - npm audit --prefix parkhub-web --package-lock-only --omit=dev --audit-level=high: 0 (was 2 high: astro, vite) - full npm audit incl dev, both lockfiles: 0 total (was 12 pkgs flagged)
nash87
marked this pull request as ready for review
July 15, 2026 08:04
There was a problem hiding this comment.
Pull request overview
Updates dependency lockfiles and OSV Scanner configuration to clear current Composer/npm audit blockers from the July 2026 advisory wave, without introducing suppressions.
Changes:
- Bumped Composer-locked packages (notably guzzle and web-token/jwt-library) to patched versions.
- Updated
parkhub-webnpm lockfile to pull in patched transitive deps (Astro/Vite/Undici/ws/etc.) and relaxed the Storybookwsoverride. - Removed the now-unneeded OSV Scanner ignore entry and documented its resolution.
Reviewed changes
Copilot reviewed 2 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
parkhub-web/package.json |
Relaxes Storybook ws override range to allow patched versions. |
parkhub-web/package-lock.json |
Locks updated parkhub-web dependency tree to versions that clear npm audit findings. |
package-lock.json |
Updates root lockfile to include patched dependency versions (notably Babel toolchain). |
osv-scanner.toml |
Removes resolved ignore entry and documents why the ledger is now empty. |
composer.lock |
Locks updated Composer dependency versions that address reported advisories. |
Files not reviewed (1)
- parkhub-web/package-lock.json: Generated file
Comments suppressed due to low confidence (2)
parkhub-web/package.json:95
- Extra trailing blank lines at EOF add noise to diffs and may conflict with formatters that expect a single newline at end-of-file. Trim the trailing empty lines.
parkhub-web/package-lock.json:17942 - Extra trailing blank lines at EOF add noise to diffs and may conflict with formatters that expect a single newline at end-of-file. Trim the trailing empty lines.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The scheduled Security workflow has been red ≥9 days, stalling the dependabot queue. Root causes verified locally with the exact CI commands.
Healed (lockfile bumps only, zero suppressions)
Composer (7 prod advisories, 3 packages): guzzlehttp/guzzle 7.11.1→7.13.2 (CVE-2026-55767, CVE-2026-55568), guzzlehttp/psr7 2.11.0→2.12.5 (CVE-2026-55766), web-token/jwt-library 4.1.3→4.1.7 (PKSA-237v-kv6c-dpkr HIGH, PKSA-66dc-42nb-26yy HIGH, +2 medium).
npm (parkhub-web): astro→6.4.8 (GHSA-2pvr-wf23-7pc7 SSRF high, GHSA-jrpj-wcv7-9fh9) + nested vite→7.3.6 (GHSA-fx2h-pf6j-xcff high) — these, not #548's dev-scope form-data, were the npm-audit-high blockers. Plus undici→7.28.0, ws→8.21.1 (required relaxing a stale exact-pin override
storybook>ws 8.20.1→^8.21.0), form-data→4.0.6, js-yaml, joi, @babel/core→7.29.7, yaml-language-server→1.23.0 (eliminates nested yaml@2.7.1 → the GHSA-48c2-rrv3-qjmp ignore is now moot and REMOVED — osv-scanner.toml ignore ledger is empty).Root package-lock.json: @babel/core→7.29.7.
Verified after (worktree, exact CI commands)
composer audit --locked --no-dev: clean; dev-inclusive: clean.npm auditprod-high: 0 (root and parkhub-web); dev-inclusive total: 0 on both lockfiles.Still red after this PR (settings, not code — separate action)
Dependabot dispositions after merge
#546/#547/#548 superseded (close) · #545 keep (resources/js tree, unscanned but alerted) · #556/#557 rebase (feature bumps) · #558 rebase after allowlist.