
Exploit de prueba de concepto para CVE-2026-55168 que demuestra escritura arbitraria de archivos autenticada mediante la siembra de enlaces simbólicos durante la restauración de copias de seguridad en Runtipi.
Este repositorio contiene un PoC simple para CVE-2026-55168 en Runtipi.
El problema es una escritura arbitraria de archivos autenticada que se puede alcanzar a través del flujo de restauración de copias de seguridad. Un archivo de copia de seguridad manipulado puede colocar un enlace simbólico en los datos restaurados de la aplicación, y una actualización normal posterior de la configuración sigue ese enlace simbólico y escribe contenido controlado por el atacante fuera del directorio previsto.
Aviso de referencia:
Versiones afectadas:
<= 4.10.0El PoC inicia sesión en Runtipi, crea un archivo de copia de seguridad malicioso en memoria, lo sube, desencadena la restauración y luego envía una solicitud de actualización normal de user-config.
El payload de restauración coloca este enlace simbólico:
user-config/app.env -> /data/state/proof.txt
Después de eso, la solicitud normal para actualizar la configuración de la aplicación hace que Runtipi escriba el contenido suministrado en:
/data/state/proof.txt
Por lo tanto, la parte importante no es solo la persistencia del enlace simbólico durante la restauración, sino el hecho de que una escritura legítima posterior sigue el enlace simbólico plantado.
poc.py — PoC Python de extremo a extremopython poc.py \
--base-url http://127.0.0.1:3001 \
--username YOUR_USERNAME \
--password YOUR_PASSWORD \
--app-urn demoapp3:_user \
--target-path /data/state/proof.txt \
--write-content PWNED_FROM_USERCFG_WRITE
Si lo deseas, también puedes guardar el archivo generado localmente:
python poc.py \
--base-url http://127.0.0.1:3001 \
--username YOUR_USERNAME \
--password YOUR_PASSWORD \
--output payload.tar.gz
Si el objetivo es vulnerable, el script finaliza con éxito e imprime un pequeño resultado JSON con status: "ok".
Este PoC se proporciona con fines de investigación y reproducción.