Forgejo sufre una vulnerabilidad crítica de RCE en versiones hasta la 16.0.3
Forgejo <=16.0.3 Critical RCE
Un repositorio plantilla malicioso permite leer datos arbitrarios del host y ejecutar procesos remotos en instancias de Forgejo hasta la 16.0.3. El fallo ocurre durante la expansión de variables al generar un repositorio desde una plantilla, donde se puede crear una carpeta .git que git adopta al inicializar. La versión 16.0.4 elimina cualquier .git existente antes de inicializar el repositorio.
Un repositorio plantilla malicioso podría usarse para leer datos arbitrarios del host de Forgejo y ejecutar procesos arbitrarios en él, como un ataque de ejecución remota de código.
- amiga386
Deberías cambiar la URL a https://codeberg.org/forgejo/forgejo/milestone/139655
> PR: Crítico: fix: evitar que la expansión de plantillas interfiera con la inicialización del repositorio git. Al generar un nuevo repositorio a partir de un repositorio plantilla, Forgejo clona el repositorio plantilla, elimina la carpeta .git, realiza la expansión de variables de plantilla en los archivos listados en .forgejo/template e inicializa un nuevo repositorio git. Durante este proceso, la expansión de variables de plantilla podría ser mal utilizada para crear una nueva carpeta .git, que git adoptaría e incorporaría durante su inicialización de un nuevo repositorio git. Un repositorio plantilla malicioso podría ser utilizado para leer datos arbitrarios del host de Forgejo y para ejecutar procesos arbitrarios en el host de Forgejo, como un ataque de ejecución remota de código. Para abordar este problema, después de completar la expansión de variables, cualquier carpeta .git existente se elimina del directorio antes de que se inicialice el repositorio git.
- techknowlogick
Solo publico aquí porque me han preguntado al respecto. Gitea está protegido contra ambos problemas.
(nota de sesgo: formo parte del liderazgo del proyecto Gitea)
Edición: Como nota, los incidentes de seguridad le ocurren a todos y no deberíamos avergonzar a nadie por reportarlos, especialmente porque de lo contrario se reportarían menos problemas en general.
- keel-control
Este fue mi primer pensamiento después de que prohibieran las contribuciones de LLM.
Puede que no usen IA para buscar vulnerabilidades, pero los atacantes sí lo van a hacer, lo que los pone en desventaja.
- Macha
Dado que las notas de la versión son actualmente ilegibles debido a los límites de velocidad de codeberg, las dos correcciones en las notas de la versión son:
https://codeberg.org/forgejo/forgejo/pulls/14301:
*Crítico:* fix: evitar que la expansión de plantillas interfiera con la inicialización del repositorio git. Al generar un nuevo repositorio a partir de un repositorio plantilla, Forgejo clona el repositorio plantilla, elimina la carpeta `.git`, realiza la expansión de variables de plantilla en los archivos listados en `.forgejo/template` e inicializa un nuevo repositorio git. Durante este proceso, la expansión de variables de plantilla podría ser mal utilizada para crear una nueva carpeta `.git`, que git adoptaría e incorporaría durante su inicialización de un nuevo repositorio git. Un repositorio plantilla malicioso podría ser utilizado para leer datos arbitrarios del host de Forgejo y para ejecutar procesos arbitrarios en el host de Forgejo, como un ataque de ejecución remota de código. Para abordar este problema, después de completar la expansión de variables, cualquier carpeta `.git` existente se elimina del directorio antes de que se inicialice el repositorio git.
https://codeberg.org/forgejo/forgejo/pulls/14301:
asegurar que se acceda al reductor de autorización al verificar PRs editables en las APIs. Al editar el contenido de un repositorio git a través de la API de Forgejo, se utiliza un control de seguridad especializado para permitir a los mantenedores del repositorio editar ramas que no les pertenecen cuando existe una pull request abierta con la opción "permitir edición del mantenedor". Este control de seguridad especializado no tuvo en cuenta la seguridad específica de la API res […]
- jzebedee
Cambio relevante:
Correcciones de errores de seguridad
PR: Crítico: fix: evitar que la expansión de plantillas interfiera con la inicialización del repositorio git. Al generar un nuevo repositorio a partir de un repositorio plantilla, Forgejo clona el repositorio plantilla, elimina la carpeta .git, realiza la expansión de variables de plantilla en los archivos listados en .forgejo/template e inicializa un nuevo repositorio git. Durante este proceso, la expansión de variables de plantilla podría ser mal utilizada para crear una nueva carpeta .git, que git adoptaría e incorporaría durante su inicialización de un nuevo repositorio git. Un repositorio plantilla malicioso podría ser utilizado para leer datos arbitrarios del host de Forgejo y para ejecutar procesos arbitrarios en el host de Forgejo, como un ataque de ejecución remota de código. Para abordar este problema, después de completar la expansión de variables, cualquier carpeta .git existente se elimina del directorio antes de que se inicialice el repositorio git.