Una falla crítica en Gitea permite a atacantes no autenticados leer archivos del servidor mediante marcado Org-mode

Una falla crítica en Gitea, la plataforma de alojamiento de Git, permite a atacantes no autenticados leer cualquier archivo que la cuenta de servicio pueda acceder en las versiones 1.22.1 a 1.27.0. No se requiere inicio de sesión, solo un repositorio público y marcado Org-mode manipulado. El fallo se corrige en la versión 1.27.1.

La vulnerabilidad de lectura de archivos se rastrea como CVE-2026-59774, con una puntuación CVSS de 9.8 (crítica) y fue comunicada formalmente el 2 de agosto. La versión 1.27.1 también corrige CVE-2026-60004, un fallo separado de ejecución remota de código del que ya informamos anteriormente.

Gitea indicó que las instancias en la nube se actualizarán automáticamente durante la ventana de mantenimiento. Los administradores de instalaciones autohospedadas deben actualizar a la 1.27.1 de inmediato.

La falla de lectura de archivos no es una ejecución remota de código directa mediante una única petición. Gitea explica que puede convertirse en ejecución de comandos si un atacante lee el archivo app.ini, extrae el INTERNAL_TOKEN, inyecta un gancho de Git a través del registro interno y activa ese gancho durante una clonación anónima.

Esa cadena se describe en el aviso de Gitea; The Hacker News no encontró ningún exploit publicado de forma independiente que la demuestre.

Actualizar es necesario, pero puede no ser suficiente si se sospecha exposición. Si los registros muestran que se llegó al endpoint de marcado en una versión afectada, trate las credenciales legibles por la cuenta de servicio de Gitea como expuestas y rote el token interno, los materiales OAuth, los materiales de firma JWT y las credenciales de base de datos antes de considerar limpia la instancia.

Sin necesidad de autenticación

La vía de lectura de archivos pasa por el endpoint de representación de marcado de Gitea, POST /{owner}/{repo}/markup. La ruta permite el inicio de sesión opcional, resuelve el repositorio y comprueba el acceso de lectura. Una solicitud anónima supera esa comprobación en cualquier repositorio público con su unidad de código habilitada. Esta condición limita la exposición no autenticada: una instancia sin repositorios públicos no tiene vía de ataque anónima a través de este endpoint.

El fallo está en el renderizador Org-mode de Gitea. La versión 1.27.0 inicializaba go-org con org.New() y no reemplazaba la devolución de llamada ReadFile predeterminada de la biblioteca. En go-org 1.9.1, esa devolución de llamada es ioutil.ReadFile. La directiva #+INCLUDE de Org-mode acepta rutas absolutas y las pasa a la devolución de llamada. Un atacante envía marcado Org-mode, selecciona Modo: archivo, y recibe archivos que la cuenta de servicio puede leer.

La corrección se realizó en el PR #38642 y se retrotrajo en el PR #38645. Ahora Gitea sobrescribe ReadFile para que una ruta de inclusión Org-mode se devuelva como contenido renderizado simple en lugar de resolverse desde el sistema de archivos del servidor. El parche añadió una prueba de regresión para el renderizado de rutas de inclusión.

CVE-2026-59774 fue encontrada por XBOW Security, un sistema ofensivo de seguridad autónomo, y fue clasificada por Guido Leo. Shai Rod, conocido en línea como NightRang3r, informó el mismo problema de forma independiente.

Qué deben revisar los administradores

Gitea no publicó una guía formal de detección en el aviso. Revisa las solicitudes POST anónimas a /{owner}/{repo}/markup, especialmente las que seleccionan la representación Org-mode o envían rutas absolutas del sistema de archivos. Si se intentó la vía de escalada descrita en el aviso, comprueba en los directorios de ganchos del repositorio si hay archivos ejecutables inesperados.

El aviso de Gitea informa que no se ha explotado en la naturaleza y, al 5 de agosto de 2026, CVE-2026-59774 no figuraba en el catálogo de vulnerabilidades explotadas conocidas de CISA. La primitiva de lectura de archivos se mostró públicamente antes de su aviso formal, según un informe anterior de THN. La cadena de ejecución de comandos de token a gancho sigue teniendo una única fuente: el aviso de Gitea.

El fallo sigue a un denso período de trabajo de seguridad en Gitea. En junio, Gitea parcheó un bypass crítico de autenticación de proxy inverso en imágenes Docker, CVE-2026-20896, que los actores de amenazas fueron observados sondeando 13 días después de la divulgación. En mayo, un fallo de control de acceso al registro de contenedores, CVE-2026-27771, se estimó que afectaba a más de 30,000 implementaciones en más de 30 países.

Cybersecurity
Cybersecurity
Cybersecurity
Cybersecurity

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *