Caso de estudio técnico del backdoor de XZ Utils (CVE-2024-3094), que abarca el abuso de confianza en la cadena de suministro, artefactos de release maliciosos, inyección en la etapa de compilación, abuso de dependencias de sshd, ingeniería de detección y lecciones de Red Team.
CASE-002 reconstruye la puerta trasera de XZ Utils / liblzma revelada el 29 de marzo de 2024 como CVE-2024-3094.
El informe sigue la operación desde la confianza a largo plazo en el mantenedor y la autoridad de publicación, pasando por la discrepancia entre el código fuente de Git revisado y los tarballs de publicación distribuidos, hasta la extracción de la carga útil en tiempo de compilación, la modificación de liblzma, la ruta de dependencia transitiva hacia sshd, el abuso de GNU IFUNC / enlazador dinámico y el disparador de preautenticación exclusivo del operador.
El enfoque no es meramente qué hizo la puerta trasera, sino cómo múltiples relaciones de confianza legítimas se convirtieron en una ruta de ejecución.
Lección central: la revisión del código fuente no es la verificación de la publicación, y un artefacto upstream firmado es tan confiable como la persona y el proceso de compilación que lo produjeron.
Verificación de integridad: report/SHA256SUMS.txt
Contributor trust
↓
Maintainer / release authority
↓
Opaque test artifacts
↓
Tarball-specific build logic
↓
Build-time malicious object extraction
↓
Payload linked into liblzma
↓
Trusted distro package build
↓
Transitive load into sshd
↓
IFUNC / loader-time symbol redirection
↓
Operator-only cryptographic SSH trigger
↓
Pre-authentication bypass / command capability
| Hallazgo | Por qué es importante |
|---|---|
| La confianza en el mantenedor fue parte de la cadena de explotación | El atacante operó desde dentro de un rol legítimo del proyecto en lugar de simplemente robar una cuenta de paquete en la etapa final. |
| El código fuente de Git y los tarballs de publicación no eran equivalentes en seguridad | La lógica de compilación generada solo para la publicación introdujo una ruta que la revisión ordinaria de Git no exponía. |
| Datos de prueba opacos se convirtieron en entrada ejecutable de compilación | Fixtures .xz / .lzma manipulados contenían etapas ocultas que se recuperaron durante la compilación. |
| La carga útil dependía de una ruta de dependencia transitiva | OpenSSH en sí no fue backdoored; liblzma llegó a compilaciones seleccionadas de sshd indirectamente a través de la integración de systemd específica de la distribución. |
| La activación en tiempo de ejecución era deliberadamente estrecha | Las barreras de plataforma, compilación, proceso, entorno y criptográficas redujeron la exposición accidental y el análisis. |
| El descubrimiento provino de la investigación de anomalías | Irregularidades de CPU, latencia y Valgrind expusieron un compromiso de la cadena de suministro que las señales de confianza estáticas habían aceptado. |
sshd → libsystemd → liblzmaEste caso de estudio va intencionalmente más allá del resumen del incidente.
El informe mapea seis conversiones de confianza:
contributor → maintainer → release artifact → distro package → runtime library → SSH control path
En cada punto de conversión, identifica la ventaja del atacante y un punto de estrangulamiento defensivo.
El análisis convierte el incidente en hipótesis comprobables en torno a:
La sección de emulación se centra en pruebas seguras de rutas de confianza, como discrepancias benignas entre tarball y código fuente y validación de rutas de dependencia, sin requerir una puerta trasera de autenticación SSH funcional.
El PDF se genera a partir de HTML/CSS controlado por versiones mediante .github/workflows/publish-report.yml.
El flujo de trabajo renderiza el cuerpo y la portada dedicada por separado, los fusiona, calcula el SHA-256, confirma el PDF generado y publica el recurso de la versión. Esto mantiene la propia publicación alineada con la lección central del caso: la ruta desde el código fuente hasta el artefacto debe ser observable y reproducible.
Se prioriza la evidencia primaria sobre el comentario retrospectivo. El informe separa el comportamiento técnico confirmado, los registros del proyecto, la exposición de la distribución, la ingeniería inversa posterior y las conclusiones analíticas.
Véase docs/METHODOLOGY.md y docs/REFERENCES.md.
.
├── .github/workflows/
│ └── publish-report.yml
├── assets/
│ └── cover-mobile-safe.svg
├── docs/
│ ├── METHODOLOGY.md
│ └── REFERENCES.md
├── report/
│ ├── cover.html
│ ├── source.html
│ ├── XZ_Utils_Backdoor_Case_Study_Michel-DV.pdf
│ └── SHA256SUMS.txt
├── CHANGELOG.md
├── CITATION.cff
├── DISCLAIMER.md
├── RELEASE_NOTES.md
├── LICENSE
└── README.md
Si este caso de estudio es útil en investigación, formación, trabajos de curso o documentación interna, por favor cite el repositorio o utilice CITATION.cff.
Autor: @Michel-DV
Serie: Michel-DV Threat Case Studies — CASE-002
Versión: v1.0.0
Año: 2026
© 2026 Michel-DV.
Esta publicación está licenciada bajo Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).
Este es un estudio técnico independiente basado en información disponible públicamente. No está afiliado ni respaldado por el Proyecto Tukaani, Red Hat, Debian, OpenSSF, OpenSSH, systemd, Kaspersky u otras organizaciones referenciadas.
El incidente de XZ no fue un solo parche malicioso. Fue una cadena de traspasos de confianza que nadie controló de forma independiente.