
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-23524 is an insecure deserialization vulnerability in Laravel Reverb, a real-time WebSocket communication backend for Laravel applications, that allows unauthenticated remote attackers to achieve Remote Code Execution (RCE). It affects all versions of laravel/reverb prior to 1.7.0 and is only exploitable when horizontal scaling is enabled (REVERB_SCALING_ENABLED=true). The vulnerability was discovered by Mohammad Yaser Abo-Elmaaty (@m0h4mmad) and disclosed on January 21, 2026, with a patch released the same day. It carries a CVSS v3.1 base score of 9.8 (Critical) (GitHub Advisory, Github Advisory).
The root cause is CWE-502 (Deserialization of Untrusted Data): in src/Protocols/Pusher/PusherPubSubIncomingMessageHandler.php, Reverb passed data received from Redis PubSub channels directly into PHP's unserialize() function without specifying an allowed_classes restriction, permitting arbitrary class instantiation. When horizontal scaling is active, multiple Reverb nodes communicate via Redis PubSub; an attacker with write access to the Redis instance can publish a crafted serialized PHP object payload to the channel, which is then deserialized by any subscribing Reverb node. The fix (commit 9ec26f8) adds ['allowed_classes' => [Application::class, PendingMetric::class, MetricType::class]] to all unserialize() calls, restricting instantiation to known safe classes (Patch Commit, GitHub Advisory). Exploitability is heightened because Redis is commonly deployed without authentication, making the attack precondition (network access to Redis) easy to satisfy in misconfigured environments.
Successful exploitation grants an unauthenticated attacker full Remote Code Execution on the Reverb server process, resulting in high confidentiality, integrity, and availability impact. An attacker can read sensitive application data, modify or destroy data, crash the service, and potentially pivot laterally within the internal network from the compromised server. All Laravel applications relying on Reverb for real-time WebSocket functionality with horizontal scaling enabled are at risk of complete application-layer compromise (GitHub Advisory, Github Advisory).
As of the time of reporting, there is no public proof-of-concept exploit and no confirmed in-the-wild exploitation (Github Advisory). However, a PoC repository (github.com/rockmelodies/CVE-2026-23524) appeared in Feedly's time series data in mid-2026, suggesting public exploit code may now exist. The EPSS score is approximately 0.17% (39th percentile), indicating a relatively low but non-negligible probability of exploitation in the near term. The vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, and no specific threat actor attribution has been reported.
nmap. Look for Redis servers without authentication (requirepass not set).redis-cli -h <target_ip> and confirm unauthenticated access. Check for Reverb-related PubSub channels using PUBSUB CHANNELS *.phpggc to generate a gadget chain targeting Laravel's class hierarchy).PUBLISH <reverb_channel> <serialized_payload>. The channel name follows Reverb's internal naming convention.application or payload field directly to unserialize(), instantiating the attacker-controlled object and triggering the gadget chain.PUBLISH commands to Reverb PubSub channels observed in Redis logs; outbound connections from the Reverb server process to unknown external IPs (potential reverse shell).MONITOR or slow log output showing PUBLISH commands with large or binary-encoded payloads to Reverb channels; PHP error logs showing deserialization warnings or unexpected class instantiation errors in PusherPubSubIncomingMessageHandler./bin/sh, bash, curl, wget, python); unexpected cron jobs or scheduled tasks created under the web server or PHP process user account.The primary remediation is to upgrade laravel/reverb to version 1.7.0 or later by running composer require laravel/reverb:^1.7.0. The fix restricts PHP's unserialize() to an allowlist of known safe classes, eliminating the gadget chain attack surface (GitHub Release, Patch Commit). If immediate upgrade is not possible, apply these interim mitigations in order of priority:
REVERB_SCALING_ENABLED=false if running a single Reverb node — this bypasses the vulnerable code path entirely.requirepass in redis.conf) and bind Redis to 127.0.0.1 or a private network interface only, preventing unauthenticated external access.The vulnerability was responsibly disclosed by researcher Mohammad Yaser Abo-Elmaaty (@m0h4mmad) and published by the Laravel team on January 21, 2026. Coverage appeared across multiple security aggregators and blogs including The Hacker Wire, Infinitsec, and CyberHub within hours of disclosure, reflecting community interest in the critical CVSS score. The Spanish national CERT (CCN-CERT) also published an advisory. Community discussion noted that the real-world risk is conditional on Redis misconfiguration, which is unfortunately common in production deployments.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."