TARmageddon: Falla crítica en la librería Async-Tar de Rust permite contrabandear archivos adicionales

Investigadores revelaron TARmageddon, una vulnerabilidad crítica (CVE-2025-62518, CVSS 8.1) en librerías Rust utilizadas para leer archivos TAR de forma asíncrona (como astral-tokio-tary forks). La falla es un error lógico que permite el contrabando de archivos desde un TAR anidado hacia el TAR exterior durante la extracción.


Mecanismo del Fallo: Desincronización de Stream

El fallo explota una inconsistencia en cómo el analizador interpreta los encabezados de los formatos TAR más antiguos y modernos.

  • Causa Raíz: El problema es una desincronización del stream al procesar cabeceras PAX (PAX-extended headers) junto a las cabeceras USTAR.
  • El Engaño: La cabecera PAX puede indicar el tamaño real del archivo, pero el parser vulnerable avanza la posición del stream calculando en el campo USTAR (que el atacante establece en 0).
  • Contrabando: Como el extractor no salta sobre el contenido real del archivo (que es otro TAR anidado), comienza a interpretar las cabeceras del TAR anidado como si fueran entradas legítimas del TAR exterior. Esto permite que archivos ocultos “aparezcan” como entradas válidas, sobreescribiendo ficheros o inyectando artefactos no inspeccionados.

Peligro en la Cadena de Suministro
  • Bypass de Escáneres y SBOMs: Los procesos de escaneo (SCA) y los SBOM (Software Bill of Materials) solo examinan el TAR exterior aprobado. Un extractor vulnerable puede introducir cargas útiles que no fueron escaneados ni listados.
  • Ejecución Remota de Código (RCE): La consecuencia más grave es el RCE en procesos de construcción (CI/CD). Por ejemplo, un paquete malicioso Python podría usar un TAR anidado para reemplazar el backend de build, logrando RCE durante una pip installen máquinas de CI.
  • Fallo Lógico en Rust: El hecho de que este sea un bug lógico (no de memoria) en Rust, un lenguaje enfocado en la seguridad subraya que Rust no es una “bala de plata” y que los errores de lógica siguen siendo un vector grave de envenenamiento de la cadena de suministro.

Recomendaciones

Para Desarrolladores de Librerías y Paquetes

  1. Actualizar Dependencias: Actualizar inmediatamente astral-tokio-tar, async-taro tokio-tara la versión parcheada (ej.,astral-tokio-tar $ge$0.5.6) y fijar (pin) las versiones en los lockfiles.
  2. Sanitizar TARs Anidados: Al procesar TARs subidos por terceros, implemente una validación recurrente y someter a escaneo los contenidos de cada TAR anidado antes de permitir su extracción.

Para Equipos de CI/CD y DevOps

  1. Escaneo Profundo en Pipeline: Habilitar el escaneo que verifique no solo el TAR exterior sino también cualquier TAR anidado. Extraer el paquete en un sandbox antes de la construcción para inspección.
  2. Guard Rails: Limitar distribuir los permisos del proceso de extracción. No permitirá que la extracción de archivos sobrescritos fuera del espacio de trabajo se ejecute o binarios automáticamente.
  3. Verificación de SBOM: Implementar un proceso de reconciliación entre el SBOM declarado del paquete aprobado y el contenido real del artefacto tras la extracción.

Para Detección (IoC Operativos)

  • Monitorear Overwrites: Buscar extracciones en registros de CI/CD que creen o modifiquen archivos en rutas no esperadas.
  • Discordancia de SBOM: Alertar sobre artefactos que contienen archivos ejecutables o scripts (como setup.py) que no estaban listados en los metadatos del SBOM original.
  • Fuzzing Dirigido: Las herramientas de auditoría deben agregar reglas de detección que identifiquen cabeceras PAX/USTAR con tamaños discordantes para detectar contrabando de archivos.

Related Post