🔍 CVE-2026-23524

9.8
CVSS Score
CRITICAL
2026-01-21
2026-06-17 10:21
✅ 완료

🇰🇷 한글 설명

Laravel Reverb에서 Redis 채널의 데이터를 unserialize() 함수로 직접 전달하여 원격 코드 실행 취약점이 발생합니다.

💡 쉬운 설명

Laravel Reverb에서 Redis 채널의 데이터를 unserialize() 함수로 직접 전달하여 원격 코드 실행 취약점이 발생합니다. 이것은 공격자가任意의 코드를 실행할 수 있게 하므로 매우 위험합니다. Redis 서버가 인증 없이 노출되어 있는 경우 취약점의 공격 가능성이 증가합니다.

🇺🇸 원문 (English)

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).

📍 영향받는 시스템

Laravel Reverb 1.6.3 이하 버전

⚔️ 공격 벡터

Redis 채널을 통해 unserialize() 함수로 데이터를 전달하여 원격 코드 실행

🛡️ 대응 방법

Laravel Reverb를 1.7.0 버전으로 업그레이드하거나 Redis 접근에 강력한 비밀번호를 설정하고 서비스를 개인 네트워크 또는 로컬 루프백으로만 접근할 수 있도록 설정하거나 REVERB_SCALING_ENABLED=false로 설정

🔧 검증 코드

로컬에서 composer를 사용하여 Laravel Reverb의 버전을 확인합니다.composer가 설치되어 있고 Laravel Reverb가 설치된 프로젝트에서 이 코드를 실행합니다.

Shell / Script
python -c "import subprocess; output = subprocess.check_output(['composer', 'show', 'laravel/reverb']).decode('utf-8'); if '1.6.3' in output or '1.6.2' in output or '1.6.1' in output or '1.6.0' in output: print('{"result": "취약", "reason": "Laravel Reverb 버전이 1.6.3 이하"}'); else: print('{"result": "양호", "reason": "Laravel Reverb 버전이 1.7.0 이상"}')"

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

PHP