tar-codec es una librería de código abierto en Rust diseñada para ofrecer un parser de archivos tar que combina alta velocidad y seguridad robusta. Desarrollada por el equipo de Astral, esta herramienta se ha integrado en la versión 0.13 de uv, el gestor de paquetes de Python, para resolver distribuciones de código fuente (sdists). Su implementación es aproximadamente el doble de rápida que la solución anterior, astral-tokio-tar, y reduce significativamente la exposición de uv a vulnerabilidades de seguridad derivadas de diferencias en el análisis del formato tar.
La necesidad de crear un parser nuevo surgió de la acumulación de informes de seguridad en astral-tokio-tar, que era un fork de varias implementaciones previas. Los problemas identificados incluían 'diferenciales' que podían causar una desincronización completa del parser, permitiendo que atacantes manipularan el contenido de los archivos para evadir las protecciones del instalador. Aunque las distribuciones en formato tar se ejecutan en tiempo de compilación, lo que las hace más vulnerables que las ruedas (wheels) en formato ZIP, el equipo de Astral determinó que las restricciones de seguridad existentes en la familia tokio-tar eran insuficientes y difíciles de aplicar sin reescribir el código. Por ello, optaron por desarrollar una implementación desde cero, lo que les permitió entender profundamente el formato tar y garantizar que sus suposiciones sobre los riesgos diferenciales fueran correctas. El proyecto también abordó la optimización de rendimiento, algo imposible de lograr en la base de código anterior sin refactorizaciones extensas. tar-codec es una herramienta esencial para cualquier desarrollador que requiera manejar archivos tar de manera eficiente y segura en el ecosistema de Rust.
