CVE-2026-23524Laravel Reverb是为Laravel应用程序提供实时WebSocket通信的后端服务。在1.6.3及以下版本中,Reverb存在严重的反序列化漏洞。该漏洞源于Reverb在处理Redis通道数据时,直接将数据传入PHP的unserialize()函数而未对可实例化的类进行任何限制。攻击者可通过构造恶意序列化数据,利用Redis通道注入payload,最终实现远程代码执行。由于Redis服务在生产环境中通常以无认证方式部署,且该漏洞仅在启用水平扩展功能(REVERB_SCALING_ENABLED=true)时才会被触发,这使得漏洞利用变得相对容易。CVSS评分高达9.8,属于严重级别漏洞,对使用Laravel Reverb的WebSocket服务构成重大威胁。攻击者无需认证即可远程利用此漏洞,可在服务器上执行任意命令,完全控制受影响系统。
该漏洞的根本原因在于Laravel Reverb 1.6.3及以下版本在处理Redis发布/订阅消息时,直接使用了PHP的unserialize()函数对来自Redis通道的数据进行反序列化操作,而没有使用allowed_classes参数限制可反序列化的类。PHP的unserialize()函数在处理包含对象数据的序列化字符串时,会自动调用对象的__wakeup()、__destruct()等魔术方法,攻击者可利用这一特性构造恶意序列化对象,在反序列化过程中触发代码执行。攻击者需要能够向Redis通道发送消息,在未认证的Redis环境下可直接连接发送恶意数据。成功利用后,攻击者可在运行Reverb的服务器上执行任意PHP代码或系统命令。该漏洞仅影响启用水平扩展的场景,因为只有当REVERB_SCALING_ENABLED=true时,Reverb才会从Redis通道读取并处理消息进行反序列化操作。