Los investigadores de ciberseguridad han revelado detalles de una error de reincorporación seriedad que afecta a la popular biblioteca async-tar Rust y sus bifurcaciones, incluida tokio-tar, que podría resultar en la ejecución remota de código bajo ciertas condiciones.
La vulnerabilidad, rastreada como CVE-2025-62518 (Puntuación CVSS: 8,1), recibió el nombre en código TARmageddon de Edera, que descubrió el problema a finales de agosto de 2025. Afecta a varios proyectos ampliamente utilizados, como testcontainers y wasmCloud.
«En el peor de los casos, esta vulnerabilidad tiene una seriedad de 8.1 (Suscripción) y puede conducir a la ejecución remota de código (RCE) a través de ataques de sobrescritura de archivos, como reemplazar archivos de configuración o secuestrar backends de compilación», dijo la compañía de seguridad con sede en Seattle.
El problema se ve agravado por el hecho de que tokio-tar es esencialmente abandonware a pesar de atraer miles de descargas a través de crates.io. Tokio-tar es una biblioteca de Rust para adivinar y escribir archivos TAR de forma asincrónica construida sobre el tiempo de ejecución de Tokio para el idioma de programación. La caja Rust se actualizó por última vez el 15 de julio de 2023.
A yerro de un parche para tokio-tar, se recomienda a los usuarios que dependen de la biblioteca que migren a astral-tokio-tar, que lanzó la interpretación 0.5.6 para remediar la error.
«Las versiones de astral-tokio-tar anteriores a la 0.5.6 contienen una vulnerabilidad de observación de límites que permite a los atacantes contrabandear entradas de archivos adicionales explotando el manejo inconsistente de encabezados PAX/ustar», dijo el desarrollador de Astral, William Woodruff, en una alerta.
«Al procesar archivos con encabezados extendidos PAX que contienen anulaciones de tamaño, el analizador avanza incorrectamente la posición de la secuencia según el tamaño del encabezado ustar (a menudo cero) en oportunidad del tamaño especificado por PAX, lo que hace que interprete el contenido del archivo como encabezados TAR legítimos».
El problema, en pocas palabras, es el resultado de un manejo inconsistente al manejar encabezados extendidos PAX y encabezados ustar al determinar los límites de los datos del archivo. PAX, sigla de intercambio de archivos portátiles, es una interpretación extendida del formato USTAR utilizado para juntar propiedades de archivos miembros en un archivo TAR.
La yerro de coincidencia entre los encabezados extendidos PAX y los encabezados ustar, donde el encabezado PAX especifica correctamente el tamaño del archivo, mientras que el encabezado ustar especifica incorrectamente el tamaño del archivo como cero (en oportunidad del tamaño PAX), genera una inconsistencia en el observación, lo que hace que la biblioteca interprete el contenido interno como entradas de archivo extranjero adicionales.
«Al avanzar 0 bytes, el analizador no puede eliminar los datos del archivo efectivo (que es un archivo TAR anidado) e inmediatamente encuentra el venidero encabezado TAR válido emplazado al inicio del archivo anidado», explicó Edera. «Luego interpreta incorrectamente los encabezados del archivo interno como entradas legítimas que pertenecen al archivo extranjero».
Como resultado, un atacante podría explotar este comportamiento para «contrabandear» archivos adicionales cuando la biblioteca procesa archivos TAR anidados, haciendo posible sobrescribir archivos interiormente de los directorios de ascendencia y, en última instancia, allanando el camino para la ejecución de código caprichoso.
En un proscenio de ataque hipotético, un atacante podría cargar un paquete especialmente diseñado en PyPI de modo que el TAR extranjero contenga un pyproject.toml legal, mientras que el TAR interno oculto contenga uno solapado que secuestra el backend de compilación y sobrescribe el archivo efectivo durante la instalación.
«Si proporcionadamente las garantías de Rust hacen que sea mucho más difícil introducir errores de seguridad de la memoria (como desbordamientos del búfer o uso luego de la independencia), no elimina los errores lógicos, y esta inconsistencia en el observación es fundamentalmente una error método», dijo Edera. «Los desarrolladores deben permanecer atentos a todas las clases de vulnerabilidades, independientemente del idioma utilizado».


