Vulnerabilidad en librería GitPython permite acceso a usuarios no identificados

GitPython es una librería de Python que posibilita la interacción con repositorios de Git.

Al resolver un programa, Python/Windows busca el directorio de trabajo actual y luego el entorno PATH. GitPython utiliza de forma predeterminada el comando git, por lo que si un usuario ejecuta GitPython desde un directorio que contiene un ejecutable git.exe o git, ese programa se ejecutará en lugar del que está en el PATH del usuario.

La vulnerabilidad  identificada con código CVSS  CVE-2023-40590 de nivel de riesgo 7.8, catalogada como Alta, podría permitir a un atacante crear un git ejecutable malicioso y engañar a un usuario para que lo descargue y ejecute GitPython desde el directorio que contiene el ejecutable malicioso.

Cabe destacar que esta vulnerabilidad se presenta en cómo Python interactúa solo con sistemas Windows.

Productos Afectados

  • GitPython GitPython 3.1.32

Solución

  • Actualmente, no existe una solución definitiva para usuarios de Windows.

Recomendaciones

Se recomiendan algunas medidas preventivas como:

  • Establecer una ruta absoluta predeterminada para el programa git en Windows, por ejemplo, C:\\Program Files\\Git\\cmd\\git.EXE (la ruta predeterminada de instalación de git).
  • Requerir que los usuarios configuren la variable de entorno GIT_PYTHON_GIT_EXECUTABLE en sistemas Windows.
  • Destacar este problema en la documentación y aconsejar a los usuarios que eviten ejecutar GitPython desde repositorios no confiables, o que configuren la variable de entorno GIT_PYTHON_GIT_EXECUTABLE con una ruta absoluta.
  • Se propone manejar la resolución del ejecutable manualmente, consultando solo la variable de entorno PATH.

Referencias