Skip to content

chore(deps): clear all open Dependabot alerts, refresh in-range dependencies - #255

Merged
HugoFara merged 1 commit into
mainfrom
chore/dependency-updates
Jul 25, 2026
Merged

chore(deps): clear all open Dependabot alerts, refresh in-range dependencies#255
HugoFara merged 1 commit into
mainfrom
chore/dependency-updates

Conversation

@HugoFara

Copy link
Copy Markdown
Owner

Clears all eight open Dependabot alerts (2 high, 6 moderate) plus two more that npm audit reports — ten advisories across five packages. Every one is fixed inside the existing version constraints, so no composer.json / package.json range edits were needed.

Security

Package Change Advisories
guzzlehttp/guzzle 7.12.1 → 7.15.1 5
guzzlehttp/psr7 2.12.1 → 2.13.0 1 (CVE-2026-59882)
brace-expansion → 5.0.8 2
linkify-it → 5.0.2 1
postcss → 8.5.23 1

The guzzle and psr7 ones are runtime, not tooling — both reach LWT through league/oauth2-google, so they affect the running application. The guzzle advisories are: proxy-authorization headers sent to origin servers, URI fragments disclosed in redirect Referer headers, unbounded response cookies, host-only cookie scope not preserved, and cookie disclosure via IP-address domains. psr7 is host confusion via weak URI host validation.

brace-expansion, linkify-it and postcss are build/test toolchain only, not shipped to users.

One deliberate constraint change

The brace-expansion override floor moves from >=5.0.6 to >=5.0.8. The lock already pinned 5.0.8 so audit was green either way, but the newer advisory covers everything up to 5.0.7 — the floor had quietly stopped guaranteeing what it was added to guarantee.

Routine refresh

All in-range: phpmailer/phpmailer 7.1.1, league/commonmark 2.8.3, thenetworg/oauth2-azure 2.2.6, phpunit/phpunit 11.5.56, plus Symfony and amphp transitives. On the JS side: vite 8.1.5, vitest 4.1.10, eslint 10.8.0, cypress 15.19.0, lucide 1.26.0, @alpinejs/csp 3.15.12, typescript-eslint 8.65.0, prettier 3.9.6, vue 3.5.40.

Held back as separate decisions: typescript 6 → 7, purgecss 4 → 8, @types/node 25 → 26. Also guzzle 8 and psr7 3, which league/oauth2-client constrains anyway.

Verification

  • Psalm 0 errors
  • PHPUnit 9085 pass
  • Integration 157 pass, 384 assertions (matches baseline)
  • Vitest 4445 pass
  • typecheck, lint, build:all clean
  • composer audit and npm audit both report zero

Two things worth a reviewer's attention:

lucide jumped 1.11 → 1.26, which is wide for a package addressed by string name — a removed icon fails silently at runtime and nothing in the test suite covers it. All 118 icon names used in src/ were resolved through the IconHelper and icons.ts alias maps, the alias targets added, and all 148 checked against the installed package. All resolve.

The eslint bump flagged a dead eslint-disable no-console directive in vite.app.config.ts. no-console is not configured anywhere in eslint.config.ts, so it was suppressing nothing. Removing it is the only source change in this PR.

Not addressed here

PHPUnit reports 4 deprecations for doc-comment metadata in the dictionary import tests. Verified against the previous PHPUnit by reinstalling the old lock — they predate this update and are not fallout from it. They become errors in PHPUnit 12, which is separate work.

Closes all eight open Dependabot alerts (two high, six moderate) plus two
more that npm audit reports: ten advisories across five packages, every one
fixed inside the existing version constraints.

Five of them are guzzlehttp/guzzle (7.12.1 -> 7.15.1): proxy-authorization
headers sent to origin servers, URI fragments disclosed in redirect Referer
headers, unbounded response cookies, host-only cookie scope not preserved,
and cookie disclosure via IP-address domains. One is guzzlehttp/psr7
(2.12.1 -> 2.13.0), host confusion via weak URI host validation
(CVE-2026-59882). Both packages reach LWT through league/oauth2-google, so
these affect the running application rather than only the toolchain.

The rest are JS toolchain, not shipped to users: brace-expansion (two DoS
advisories), linkify-it and postcss.

The brace-expansion override floor moves >=5.0.6 -> >=5.0.8. The lock
already pinned 5.0.8, but the newer advisory covers everything up to 5.0.7,
so the floor no longer guaranteed what it was added to guarantee.

Everything else is a routine in-range refresh (phpmailer 7.1.1, commonmark
2.8.3, phpunit 11.5.56, vite 8.1.5, vitest 4.1.10, eslint 10.8.0, lucide
1.26.0, and others). Three majors held back as separate decisions:
typescript 6 -> 7, purgecss 4 -> 8, @types/node 25 -> 26.

The eslint bump flagged a dead eslint-disable directive in
vite.app.config.ts; no-console is not configured anywhere, so the directive
was suppressing nothing.

lucide 1.11 -> 1.26 is a wide jump for a package addressed by string name,
so all 118 icon names used in src/ were resolved through the IconHelper and
icons.ts alias maps and checked against the installed package, along with
the alias targets: 148 names, all resolve.
@HugoFara
HugoFara merged commit 815106a into main Jul 25, 2026
14 checks passed
@HugoFara
HugoFara deleted the chore/dependency-updates branch July 25, 2026 20:08
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.

1 participant