GHSA-M27R-M6RX-MHM4
Vulnerability from github – Published: 2026-01-21 15:40 – Updated: 2026-01-22 15:39Impact
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
{
"affected": [
{
"package": {
"ecosystem": "Packagist",
"name": "laravel/reverb"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1.7.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-23524"
],
"database_specific": {
"cwe_ids": [
"CWE-502"
],
"github_reviewed": true,
"github_reviewed_at": "2026-01-21T15:40:24Z",
"nvd_published_at": "2026-01-21T22:15:50Z",
"severity": "CRITICAL"
},
"details": "### Impact\n\nThis vulnerability affects Laravel Reverb versions prior to v1.7.0 when horizontal scaling is enabled (`REVERB_SCALING_ENABLED=true`).\n\nThe exploitability of this vulnerability is increased because Redis servers are commonly deployed without authentication.\n\nWith horizontal scaling enabled, Reverb servers communicate via Redis PubSub. Reverb previously passed data from the Redis channel directly into PHP\u2019s `unserialize()` function without restricting which classes could be instantiated.\n\n**Risk:** Remote Code Execution (RCE)\n\n### Patches\nThis vulnerability is fixed in Laravel Reverb v1.7.0.\n\nUpdate your dependency to `laravel/reverb: ^1.7.0` immediately.\n\n### Workarounds\nIf you cannot upgrade to v1.7.0, you should apply the following mitigations:\n\n* Redis Security: Require a strong password for Redis access and ensure the service is only accessible via a private network or local loopback.\n* Disable Scaling: If your environment uses only one Reverb node, set `REVERB_SCALING_ENABLED=false` to bypass the vulnerable logic entirely.\n\n### Credits\nThis vulnerability was discovered and responsibly reported by Mohammad Yaser Abo-Elmaaty @m0h4mmad",
"id": "GHSA-m27r-m6rx-mhm4",
"modified": "2026-01-22T15:39:36Z",
"published": "2026-01-21T15:40:24Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/laravel/reverb/security/advisories/GHSA-m27r-m6rx-mhm4"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-23524"
},
{
"type": "WEB",
"url": "https://github.com/laravel/reverb/commit/9ec26f8ffbb701f84920dd0bb9781a1797591f1a"
},
{
"type": "PACKAGE",
"url": "https://github.com/laravel/reverb"
},
{
"type": "WEB",
"url": "https://github.com/laravel/reverb/releases/tag/v1.7.0"
},
{
"type": "WEB",
"url": "https://laravel.com/docs/12.x/reverb#scaling"
},
{
"type": "WEB",
"url": "https://laravel.com/docs/reverb#scaling"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Laravel Redis Horizontal Scaling Insecure Deserialization"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.