Описание
Laravel Redis Horizontal Scaling Insecure Deserialization
Impact
This vulnerability affects Laravel Reverb versions prior to v1.7.0 when horizontal scaling is enabled (REVERB_SCALING_ENABLED=true).
The exploitability of this vulnerability is increased because Redis servers are commonly deployed without authentication.
With horizontal scaling enabled, Reverb servers communicate via Redis PubSub. Reverb previously passed data from the Redis channel directly into PHP’s unserialize() function without restricting which classes could be instantiated.
Risk: Remote Code Execution (RCE)
Patches
This vulnerability is fixed in Laravel Reverb v1.7.0.
Update your dependency to laravel/reverb: ^1.7.0 immediately.
Workarounds
If you cannot upgrade to v1.7.0, you should apply the following mitigations:
- Redis Security: Require a strong password for Redis access and ensure the service is only accessible via a private network or local loopback.
- Disable Scaling: If your environment uses only one Reverb node, set
REVERB_SCALING_ENABLED=falseto bypass the vulnerable logic entirely.
Credits
This vulnerability was discovered and responsibly reported by Mohammad Yaser Abo-Elmaaty @m0h4mmad
Ссылки
- https://github.com/laravel/reverb/security/advisories/GHSA-m27r-m6rx-mhm4
- https://nvd.nist.gov/vuln/detail/CVE-2026-23524
- https://github.com/laravel/reverb/commit/9ec26f8ffbb701f84920dd0bb9781a1797591f1a
- https://github.com/laravel/reverb/releases/tag/v1.7.0
- https://laravel.com/docs/12.x/reverb#scaling
- https://laravel.com/docs/reverb#scaling
Пакеты
laravel/reverb
< 1.7.0
1.7.0
Связанные уязвимости
Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications. In versions 1.6.3 and below, Reverb passes data from the Redis channel directly into PHP’s unserialize() function without restricting which classes can be instantiated, which leaves users vulnerable to Remote Code Execution. The exploitability of this vulnerability is increased because Redis servers are commonly deployed without authentication, but only affects Laravel Reverb when horizontal scaling is enabled (REVERB_SCALING_ENABLED=true). This issue has been fixed in version 1.7.0. As a workaround, require a strong password for Redis access and ensure the service is only accessible via a private network or local loopback, and/or set REVERB_SCALING_ENABLED=false to bypass the vulnerable logic entirely (if the environment uses only one Reverb node).
Уязвимость функции unserialize() WebSocket-сервера Laravel Reverb, позволяющая нарушителю выполнить произвольный код