Skip to content

fix(security): heal composer/npm audit gates — 2026-07 advisory wave lockfile bumps - #559

Open
nash87 wants to merge 1 commit into
mainfrom
t-secgate-php-heal
Open

fix(security): heal composer/npm audit gates — 2026-07 advisory wave lockfile bumps#559
nash87 wants to merge 1 commit into
mainfrom
t-secgate-php-heal

Conversation

@nash87

@nash87 nash87 commented Jul 15, 2026

Copy link
Copy Markdown
Owner

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 audit prod-high: 0 (root and parkhub-web); dev-inclusive total: 0 on both lockfiles.

Still red after this PR (settings, not code — separate action)

  • trivy-fs / trivy-image die at Set-up-job: setup-trivy v0.2.6's NESTED action SHAs aren't in the repo's selected-actions allowlist (actions/cache/restore + cache/save @9255dc7a…, actions/checkout @8e8c483d…). Allowlist addition required.
  • build(deps): bump the actions group across 1 directory with 15 updates #558 startup_failure: same allowlist mechanism for its 15 bumped action SHAs; YAML is valid.

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.

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)
@github-actions github-actions Bot added dependencies Pull requests that update a dependency file php PHP backend and Composer changes web labels Jul 15, 2026
@nash87
nash87 marked this pull request as ready for review July 15, 2026 08:04
Copilot AI review requested due to automatic review settings July 15, 2026 08:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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-web npm lockfile to pull in patched transitive deps (Astro/Vite/Undici/ws/etc.) and relaxed the Storybook ws override.
  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file php PHP backend and Composer changes web

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants