Un bug lógico silencioso durante casi una década en el kernel Linux. Un script de 732 bytes. Root en todas las distribuciones mayores desde 2017.
Tu tarea: reproducirlo y parchearlo.
# 1. Fork este repositorio a tu cuenta GitHub
# 2. Ábrelo en GitHub Codespaces
# 3. Dentro del devcontainer:
git config user.name "TuNombre TuApellido"
git config user.email "tu@uide.edu.ec"
make setup # compila kernel vulnerable + rootfs (~20 min)
make qemu # arranca la VM vulnerable
# ... sigue las instrucciones en CHALLENGE.mdcopy-fail-challenge/
├── .devcontainer/ ← Configuración del devcontainer (Ubuntu + QEMU)
│ ├── devcontainer.json
│ └── Dockerfile
├── .github/workflows/
│ └── grade.yml ← Autocalificador de GitHub Actions
├── evidence/ ← TUS ARCHIVOS DE EVIDENCIA VAN AQUÍ
│ └── README.md
├── grader/
│ └── grade.py ← Calificador local (make grade)
├── patches/ ← TU PARCHE VA AQUÍ (Hito 4)
│ └── README.md
├── scripts/
│ ├── 00_welcome.sh
│ ├── 01_build_kernel.sh ← Compila Linux v6.12 (vulnerable)
│ ├── 02_build_rootfs.sh ← BusyBox + Python rootfs
│ ├── 03_run_qemu.sh ← Arranca la VM
│ └── 04_build_patched_kernel.sh
├── kernel/ ← Fuentes del kernel (gitignore excepto config)
├── CHALLENGE.md ← INSTRUCCIONES COMPLETAS DEL RETO
├── Makefile
└── README.md
| # | Hito | Pts |
|---|---|---|
| 1 | Kernel Linux 6.12 vulnerable corriendo en QEMU, algif_aead cargado |
2.0 |
| 2 | PoC ejecutado → uid=0(root) obtenido como usuario sin privilegios |
3.0 |
| 3 | Mitigación temporal: rmmod algif_aead, exploit falla |
1.5 |
| 4 | Parche en crypto/algif_aead.c, kernel recompilado, exploit falla |
2.0 |
| B | REPORT.md: explicación técnica con conexión a conceptos del curso |
0.5 |
- Write-up técnico: https://xint.io/blog/copy-fail-linux-distributions
- Sitio oficial del CVE: https://copy.fail/
- PoC público: https://github.com/theori-io/copy-fail-CVE-2026-31431
- Kubernetes escape (Parte 2): https://github.com/Percivalll/Copy-Fail-CVE-2026-31431-Kubernetes-PoC
- ✅ Se permite todo recurso en internet, IA, documentación, write-ups
- ✅ Se permite (y se espera) leer el código del PoC público
- ❌ No se permite compartir archivos de evidencia entre estudiantes
- ❌ El hostname de tu VM debe ser único (viene de
git config user.name) - ⏱ Todos los commits deben tener timestamp dentro de la ventana del examen
Basado en CVE-2026-31431 descubierto por Theori / Xint Code. Divulgado el 29 de abril de 2026.