Investigadores de JFrog han encontrado en la imagen de Docker 'cabotage-app' un token que proporciona acceso con privilegios de administrador a los repositorios de Python, PyPI y la Python Software Foundation en GitHub. El token fue encontrado en el archivo binario '__pycache__/build.cpython-311.pyc' con el bytecode compilado en caché.

Según representantes del repositorio de PyPI, el token fue creado en 2023 para el desarrollador ewdurbin (Ee Durbin), quien ocupa el cargo de director de infraestructura en la Python Software Foundation. El token proporcionaba acceso con privilegios de administrador a todos los repositorios y organizaciones del proyecto, incluidos todos los repositorios de las organizaciones pypi, python, psf y pypa. La imagen problemática de Docker con el token fue publicada en el catálogo de Docker Hub el 3 de marzo de 2023 y eliminada el 11 de junio de 2024, es decir, estuvo disponible públicamente durante 16 meses. El 28 de junio, el token fue revocado.
Es notable que en los textos de origen disponibles, sobre los cuales se generó el archivo problemático con el bytecode, no hay mención del token. El autor del código explicó que durante el desarrollo del 'cabotage-app5' en su sistema local se encontró con limitaciones de intensidad de acceso a la API de GitHub al realizar la función de carga automatizada de archivos desde GitHub, y para eludir los límites establecidos para las llamadas anónimas a GitHub, agregó temporalmente su token de trabajo al código. Antes de publicar el código escrito, el token fue eliminado, pero el desarrollador no tuvo en cuenta que la referencia al token se había almacenado en caché en el archivo precompilado con el bytecode, que luego se incluyó en la imagen de Docker. def _fetch_github_file( — github_repository='owner/repo', ref='main', access_token=None, filename='Dockerfile' + github_repository='owner/repo', + ref='main', + access_token='0d6a9bb5af126f73350a2afc058492765446aaad', + filename='Dockerfile', ):
La auditoría de actividad realizada por los desarrolladores de Python en los repositorios de GitHub no reveló intentos externos de acceso utilizando el token expuesto. Dado que desde 2017 GitHub ha sido la plataforma principal para el desarrollo de CPython, la caída del token en manos de un atacante podría haber llevado a una completa compromisión de la infraestructura utilizada para el desarrollo de Python y el repositorio de PyPI, así como la posibilidad de intentar integrar puertas traseras en CPython y el gestor de paquetes PyPI.
El incidente destaca la importancia de analizar filtraciones no solo en el código fuente, en archivos de configuración y en variables de entorno, sino también en archivos binarios. En el contexto de Python, se aconseja a los usuarios prestar atención a la presencia de archivos .pyc en los proyectos descargados, ya que estos archivos pueden contener modificaciones ocultas que no están presentes en el código fuente.
Fuente: opennet.ru
