
Running FrankenPHP in production? Stop reading and upgrade. Version 1.11.2 just dropped with three security patches—including a critical path confusion vulnerability that could allow arbitrary file execution. But stick around, because the performance gains are equally compelling.
Three Security Vulnerabilities You Need to Patch Now
Let's not bury the lede. If you're running FrankenPHP, especially with worker mode enabled, these CVEs affect you:
GHSA-g966-83w7-6w38: Path Confusion Attack
The most severe vulnerability involves Unicode casing path confusion in CGI path splitting. In plain English: an attacker could craft requests with specially-formatted paths that bypass security checks and execute arbitrary files on your server.
This is the kind of vulnerability that keeps DevOps engineers awake at night. If your application allows user-influenced paths or file uploads, you're exposed.
GHSA-r3xh-3r3w-47gp: Session Leaks in Worker Mode
Worker mode is one of FrankenPHP's killer features—persistent workers that eliminate the overhead of bootstrapping PHP on every request. But this release fixes a bug where session data could leak between requests handled by the same worker.
Imagine User A's session bleeding into User B's request. Authentication tokens, user IDs, shopping carts—all potentially exposed. Not good.
GHSA-x9p2-77v6-6vhf: Docker Image Security
The third fix addresses delayed propagation of security patches in upstream Docker base images. If you're deploying FrankenPHP containers, this ensures you're not inheriting stale vulnerabilities.
The Performance Story: Go 1.26 Changes Everything
Once you've patched the security issues, you'll notice something else: your app is faster.
FrankenPHP 1.11.2 upgrades to Go 1.26, and the numbers are significant:
- 10-40% faster Garbage Collector: Reduced GC pause times mean smoother response latency, especially under load
- ~30% faster CGO calls: Every time PHP talks to Go (which is constantly), it's now 30% quicker
- Internal optimizations: The maintainers mention "various internal optimizations" that compound with the above
For Laravel applications, this translates to lower tail latencies and better P99 response times. Your dashboard analytics will look nicer.
Bug Fixes Worth Mentioning
Beyond the headlines, this release squashes several annoying bugs:
1// Before: $_SERVER[PHP_SELF] could be missing the leading slash
2// After: Always starts with /
3$path = $_SERVER[PHP_SELF]; // Now guaranteed to be /your/path
HTTP Basic Auth now passes through to PHP natively, fixing edge cases where authentication headers weren't reaching your application.
Symlink handling has been improved—important if you're using atomic deployments with symlinked releases.
Race conditions during shutdown and drain operations have been fixed, making graceful restarts more reliable.
Worker mode stability improvements include proper initialization of $_REQUEST and correct resetting of INI settings and $_SESSION between requests.
New: Alpine APK Repository
For the Alpine Linux fans (and there are many in the Docker world), FrankenPHP now offers a dedicated APK repository. This makes Alpine-based image builds cleaner and updates easier to manage.
1# Before: Manual binary downloads
2# After: Native package management
3RUN apk add --no-cache frankenphp
How to Upgrade
If you're using Docker:
1docker pull dunglas/frankenphp:latest
For Laravel Octane users:
1composer update
2php artisan octane:install --server=frankenphp
3php artisan octane:reload
For standalone installations, grab the binary from the releases page.
Why FrankenPHP Matters for Laravel
If you're still running PHP-FPM behind Nginx, FrankenPHP offers a compelling alternative:
- Single binary: No separate web server, PHP-FPM, and process manager
- Worker mode: Keep your Laravel app warm, eliminating bootstrap overhead
- HTTP/3 & Early Hints: Modern protocol support out of the box
- Caddy integration: Automatic HTTPS with Let's Encrypt
With Laravel Octane's native FrankenPHP support, the integration is seamless.
The Bottom Line
FrankenPHP 1.11.2 is a mandatory upgrade if you're running in production. The security fixes alone justify immediate action—don't wait for the next scheduled maintenance window.
The performance improvements are a nice bonus. Faster GC, faster CGO, and various internal optimizations add up to a noticeably snappier application.
Upgrade today. Your users (and your security team) will thank you.
Based on the official release notes. Learn more at Laravel News.