118 wires and counting
$ status: archived — this briefing has stopped; the archive stays readable. browse live briefings →

$ status

wire 2026-09-10
stories 45

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

Boost rejects escaping skill paths, Wayfinder resolves middleware aliases

By RepoJournal · Filed · About Laravel · Composed from the cited sources · methodology

Laravel Boost now aborts skill downloads whose paths could escape the skill directory, and Wayfinder resolves the HTTP kernel before route inspection so aliased middleware defaults are picked up.

Laravel Boost closed a path traversal hole in skill downloads. `downloadSkill()` wrote every blob using the git path as-is, and since Git allows `\` in filenames while Windows treats it as a directory separator, a blob at `skill-one/..\..\evil.txt` resolved outside the skill directory. The download now fails as a whole when any blob path contains `\`, a `..` segment, or a NUL byte [1][2]. Separately, `boost:install --mcp` used to report success while writing nothing when the server key appeared only in a commented-out line inside `mcpServers`; `serverExistsInContent()` matched against the raw slice between the braces, so `// "laravel-boost": {...}` counted as an existing entry and the server was filtered out before injection. The check now runs on content with comments removed [3].

Boost also wired third-party NPM packages into guideline and skill discovery. Third-party Composer packages already shipped these via `vendor/{pkg}/resources/boost/guidelines/` and `resources/boost/skills/`, but the NPM equivalents (`Npm::packagesDirectoriesWithBoostGuidelines()` and `Npm::packagesDirectoriesWithBoostSkills()`) were never called in the third-party resolution paths; only first-party packages (`@laravel/*`, `@inertiajs/*`) were discovered [4][5].

Wayfinder now resolves the HTTP kernel before walking routes when inferring URL defaults. Middleware aliases only reach the router once the kernel is resolved, and `php artisan wayfinder:generate` never resolved it, so a group written as `->middleware(['auth', 'organization.user'])` handed Wayfinder the raw alias string, `class_exists()` on it failed, and any `URL::defaults()` set by that middleware was missed, leaving the parameter required in the generated route [6][7].

On 13.x, Laravel Framework landed three fixes: `Factory::raw()` with a count of zero or negative returned a non-empty list because `range(1, 0)` yields `[1, 0]` and `range(1, -3)` yields `[1, 0, -1, -2, -3]` [8][9]; `containsStrict()` returned false when a closure matched a null value [10]; and Eloquent violation callbacks such as `handleLazyLoadingViolationUsing` and `handleMissingAttributeViolationUsing` will receive the exception instead of callers reconstructing it from the environment [11]. Queue `pause`/`resume` now accept enums, matching the Queue and Connection job attributes and manager methods like route and forward [12].

Action items

References

  1. [1] Reject backslash paths when downloading a skill so files cannot land outside the skill directory (#963) ↗ laravel/boost
  2. [2] Reject backslash paths when downloading a skill so files cannot land outside the skill directory ↗ laravel/boost
  3. [3] Ignore commented-out entries when checking for existing MCP servers ↗ laravel/boost
  4. [4] feat: support third-party NPM package guidelines and skills ↗ laravel/boost
  5. [5] feat: support third-party NPM package guidelines and skills (#935) ↗ laravel/boost
  6. [6] Resolve middleware aliases when inferring URL defaults ↗ laravel/wayfinder
  7. [7] Resolve middleware aliases when inferring URL defaults (#295) ↗ laravel/wayfinder
  8. [8] [13.x] Fix Factory::raw() with a count of zero (#61510) ↗ laravel/framework
  9. [9] [13.x] Fix Factory::raw() with a count of zero ↗ laravel/framework
  10. [10] [13.x] Fix containsStrict() returning false when a closure matches a null value (#61507) ↗ laravel/framework
  11. [11] [13.x] Pass the exception to Eloquent violation callbacks ↗ laravel/framework
  12. [12] [13.x] Allow enums in queue pause/resume methods ↗ laravel/framework

Quick answers

What shipped in Laravel on September 10, 2026?
Laravel Boost now aborts skill downloads whose paths could escape the skill directory, and Wayfinder resolves the HTTP kernel before route inspection so aliased middleware defaults are picked up. In total, 33 commits and 12 pull requests landed.
Who contributed to Laravel on September 10, 2026?
7 developers shipped this update, including lazerg, calebdw, Suliman Benhalim, jackbayliss, Obada Alzidi, Bünyamin Bilen KARATAŞ, and nuno maduro.
What were the notable Laravel updates?
Reject backslash paths when downloading a skill so files cannot land outside the skill directory (#963), Reject backslash paths when downloading a skill so files cannot land outside the skill directory, and Ignore commented-out entries when checking for existing MCP servers.