La cadena de vulnerabilidad LiteLLM permite a usuarios con pocos privilegios hacerse cargo de servidores de puerta de enlace AI – CYBERDEFENSA.MX

Una cuenta predeterminada con bajos privilegios en un proxy LiteLLM puede ascender a administrador completo y ejecutar código en el servidor encadenando tres vulnerabilidades, revelaron investigadores de Obsidian Security.

LiteLLM es una puerta de enlace de IA de código abierto ampliamente implementada que gestiona llamadas a más de 100 proveedores de modelos detrás de una interfaz compatible con OpenAI.

Una toma de control del servidor expone cada clave de proveedor que posee, los secretos que descifran sus credenciales almacenadas y cada mensaje y respuesta que pasa a través de él.

Obsidian califica el CVSS de cadena completa con 9.9, en el rango Crítico. berriaiel mantenedor, incluyó el conjunto de correcciones completo en LiteLLM v1.83.14-stable, que GitHub enumera como lanzado el 2 de mayo. Actualice a esa versión o posterior para cerrar la cadena de tres CVE.

los tres bichos

El primer enlace es CVE-2026-47101una omisión de autorización. Cuando un usuario normal (un usuario interno) genera una clave API virtual, LiteLLM almacena el campo de rutas permitidas proporcionado por la persona que llama sin compararlo con la función del usuario.

Se supone que el campo limita lo que puede hacer una clave. En cambio, el proxy también lo trata como una concesión alternativa, por lo que alguien que no sea administrador puede crear una clave con Allow_routes: [«/*»]un comodín que llega a todas las rutas, incluidas las exclusivas para administradores. La misma escritura no verificada aparece en los otros puntos finales de administración de claves, razón por la cual la solución requirió tres solicitudes de extracción para llegar.

Una vez pasada la puerta de ruta, los manejadores detrás de ella se vuelven accesibles. Varios de ellos suponen que la puerta ya ha pasado el control, lo que abre dos caminos.

uno es CVE-2026-47102escalada de privilegios. El punto final /user/update permite al usuario editar su propio registro, pero no restringe qué campos puede escribir. Se acepta y guarda una actualización automática con user_role: «proxy_admin», lo que promueve a la persona que llama a administrador de proxy completo. Un org_admin puede llegar a este punto final a través de una ruta de código legítima y prevista sin necesidad de omitirla; un usuario interno predeterminado lo alcanza después de CVE-2026-47101.

Ciberseguridad

VulnCheck, que asignó el CVE, le otorga una puntuación de 8,7 en CVSS 4.0 y 8,8 en 3.1.

El otro es CVE-2026-40217un escape de espacio aislado en Custom Code Guardrail, que compila y ejecuta Python proporcionado por el administrador. Los puntos finales de producción ejecutaron el código a través de exec() sin filtrado a nivel de fuente. Cuando exec() obtiene un dictado global sin __builtins__, Python inyecta silenciosamente el módulo integrado completo, que entrega el código __import__, open y eval. Una carga útil simple que llamara a os.system fue suficiente para un shell inverso.

Una ruta separada en el punto final del área de juegos /guardrails/test_custom_code, encontrada de forma independiente por X41 D-Secderrotó una lista de denegación de expresiones regulares mediante la reescritura del código de bytes en tiempo de ejecución. Ambos terminaron en la ejecución de código del lado del servidor.

Lo que obtiene un atacante

LiteLLM se encuentra en un cuello de botella, por lo que el alcance es amplio. Una cadena completa expone la clave maestra, la clave salt que descifra las credenciales almacenadas y la URL de la base de datos. También expone todas las claves de proveedor configuradas, para OpenAI, Anthropic, Gemini, Bedrock, Azure y el resto.

Las claves en la configuración o el entorno son texto sin formato; Las claves de la base de datos están cifradas pero se pueden recuperar con la clave salt. Todo lo que se envía a través de la puerta de enlace, indicaciones y respuestas, se vuelve legible, que en implementaciones reales es donde terminan la PII, el código fuente, los tickets internos y los secretos pegados.

Si el proxy también se ejecuta como protocolo de contexto modelo (MCP) o puerta de enlace de agente, los tokens de OAuth y las credenciales de herramientas también están dentro del alcance.

El mayor riesgo no es lo que lee un atacante sino lo que puede reescribir. La puerta de enlace se encuentra en el cable entre un agente de IA y el modelo, por lo que un compromiso le permite alterar las respuestas en tránsito.

Obsidiana demostrada esto contra Claude Code enrutado a través de un proxy comprometido. Esta no es una inyección inmediata. En lugar de persuadir al modelo para que se comporte mal, el atacante utiliza el mecanismo de devolución de llamada integrado de LiteLLM, un punto de extensión que se activa con cada solicitud y nunca aparece en la interfaz de usuario del administrador. La devolución de llamada intercambia la respuesta del modelo por una llamada de herramienta falsificada y reescribe el contexto de verificación de seguridad para que la acción se lea como aprobada.

En la demostración, el desarrollador escribe una palabra, hola, y el atacante abre un shell inverso en la máquina del desarrollador.

Separado de la cadena, LiteLLM le entrega a proxy_admin una ruta de ejecución de código intencional: su soporte MCP le permite a un administrador registrar servidores stdio MCP que el proxy inicia como subprocesos locales. Se trata de una compensación de diseño más que de un error, y los parches no lo cambian, por lo que llegar al administrador es efectivamente llegar a la ejecución del código.

Obsidian reprodujo un caparazón inverso de esta manera en v1.88.0. Un error genuino en la misma maquinaria stdio-MCP, CVE-2026-42271, permite a las personas que llaman generar subprocesos a través de los puntos finales de vista previa de MCP de LiteLLM; fue explotado en estado salvaje y agregado al catálogo KEV de CISA a principios de este mes.

Ciberseguridad

Nada de esto es el primer momento difícil para LiteLLM este año. En marzo, un compromiso de la cadena de suministro bloqueó dos versiones de LiteLLM en PyPI y, en abril, se aprovechó una inyección SQL crítica dentro de las 36 horas posteriores a la divulgación.

Obsidian enmarca la cadena aquí como una falla revelada con una demostración funcional, no como una explotación vista en la naturaleza, pero la posición del proxy sigue convirtiéndola en un objetivo.

que hacer

Actualice a v1.83.14 estable o posterior, la primera versión con el conjunto completo de correcciones. Luego audite. Vuelva a verificar cada cuenta que tenga proxy_admin y trate esa función como acceso a nivel de host. Revise cada medida de seguridad de código personalizado en el proxy.

Verifique las devoluciones de llamada cargadas desde config.yaml en litellm_settings.callbacks, ya que nunca aparecen en la consola y son exactamente donde se escondería un atacante posterior a RCE. Verifique la integridad del código implementado, no solo la configuración. Si se sospecha una exposición, rote las claves del proveedor, las credenciales de la base de datos y los tokens MCP almacenados.

Un proxy comprometido no sólo filtra datos. Se sitúa entre el agente y el modelo y puede forjar las respuestas sobre las que actúa el agente. La cadena que lleva a un atacante allí tiene una confianza fuera de lugar en cada capa: la puerta de ruta confiaba en el campo proporcionado por la persona que llama, los controladores confiaban en la puerta de ruta y nadie realmente comprobó.

Fallo LiteLLM CVE-2026-42271 explotado en la naturaleza, encadenamiento a RCE no autenticado – CYBERDEFENSA.MX

La Agencia de Seguridad de Infraestructura y Ciberseguridad de EE. UU. (CISA) el lunes agregado una falla de alta gravedad que afecta a BerriAI LiteLLM a sus vulnerabilidades explotadas conocidas (KEV) catálogo, citando evidencia de explotación activa.

La vulnerabilidad, rastreada como CVE-2026-42271 (Puntuación CVSS: 8,7) es una vulnerabilidad de inyección de comandos que podría permitir a cualquier usuario autenticado ejecutar comandos arbitrarios en el host.

Afecta a la siguiente versión del paquete LiteLLM Python:

«Dos puntos finales utilizados para obtener una vista previa de un servidor MCP antes de guardarlo – POST /mcp-rest/test/connection y POST /mcp-rest/test/tools/list – aceptaron una configuración completa del servidor en el cuerpo de la solicitud, incluidos los campos comando, args y env utilizados por el transporte stdio», según un descripción del defecto compartido por BerriAI.

Ciberseguridad

«Cuando se les llamó con una configuración stdio, los puntos finales intentaron conectarse, lo que generó el comando proporcionado como un subproceso en el host proxy con los privilegios del proceso proxy».

Los mantenedores de la puerta de enlace AI de código abierto y el SDK de Python dijeron que los puntos finales estaban protegidos solo por medio de una clave API proxy válida, como resultado de lo cual cualquier usuario autenticado, incluidas las claves de usuario interno privilegiado, podría ejecutar comandos arbitrarios en un sistema susceptible.

Como parte de los parches lanzados en la versión 1.83.7, ambos puntos finales de prueba ahora requieren la función PROXY_ADMIN, lo que lo hace coherente con el punto final de guardado.

LiteLLM Ejecución remota de código no autenticado a través de la omisión de validación del encabezado del host Starlette

La semana pasada, Horizon3.ai dijo que encadenó CVE-2026-42271 con CVE-2026-48710 (Puntuación CVSS: 6,5), un «Mal anfitrión» Vulnerabilidad de omisión de validación del encabezado del host que afecta estrellaun marco liviano de interfaz de puerta de enlace de servidor asíncrono (ASGI), para eludir por completo la autenticación y lograr la ejecución remota de código contra implementaciones vulnerables de LiteLLM.

«CVE-2026-48710 se puede utilizar para omitir completamente el mecanismo de autenticación en implementaciones LiteLLM cuyo árbol de dependencia incluya versiones de Starlette ≤ 1.0.0», Horizon3.ai dicho. «Esto transforma la vulnerabilidad en una ejecución remota de código no autenticado sin necesidad de credenciales».

La utilización exitosa de la cadena de exploits como arma podría permitir a los atacantes ejecutar comandos arbitrarios en el host LiteLLM, acceder a las credenciales del proveedor del modelo, desviar claves API y secretos almacenados por el proxy, moverse lateralmente a la infraestructura de IA conectada e incluso comprometer los sistemas posteriores integrados con la puerta de enlace.

Según Horizon3.ai, la vulnerabilidad encadenada tiene una puntuación CVSS combinada de 10,0, lo que la hace crítica por naturaleza.

Ciberseguridad

Actualmente no hay información sobre cómo se está explotando la vulnerabilidad, la identidad de los actores de amenazas detrás de los esfuerzos, quiénes son el objetivo, qué tan extendidos están estos ataques o si la actividad ha comprometido con éxito alguna instancia. Tampoco está claro si los ataques observados en la naturaleza están aprovechando la cadena de explotación.

Se recomienda a los usuarios actualizar LiteLLM a la versión 1.83.7 o posterior y Starlette a la versión 1.0.1 o posterior. Si la aplicación inmediata de parches no es una opción, se recomiendan las siguientes mitigaciones:

  • Bloquee POST /mcp-rest/test/connection y POST /mcp-rest/test/tools/list en el proxy inverso o la puerta de enlace API.
  • Restrinja el acceso a la red a segmentos confiables.
  • Rotar las credenciales almacenadas por el proxy.
  • Revise los registros para detectar actividades inusuales en el encabezado del host y eventos de ejecución de subprocesos.

El desarrollo se produce poco más de un mes después de que una falla crítica de inyección SQL en LiteLLM (CVE-2026-42208, puntuación CVSS: 9.3) fuera explotada activamente dentro de las 36 horas posteriores a que el error se hiciera público.

LiteLLM CVE-2026-42208 Inyección SQL explotada dentro de las 36 horas posteriores a la divulgación – CYBERDEFENSA.MX

En otro caso más de actores de amenazas que se suben rápidamente al carro de la explotación, una falla de seguridad crítica recientemente revelada en BerriAI LiteLLM El paquete Python ha sido objeto de explotación activa en la naturaleza dentro de las 36 horas posteriores a que el error se hiciera público.

La vulnerabilidad, identificada como CVE-2026-42208 (puntuación CVSS: 9,3), es una inyección SQL que podría explotarse para modificar la base de datos proxy LiteLLM subyacente.

«Una consulta de base de datos utilizada durante las comprobaciones de claves de API de proxy mezcló el valor de clave proporcionado por la persona que llama en el texto de la consulta en lugar de pasarlo como un parámetro separado», mantenedores de LiteLLM dicho en una alerta la semana pasada.

Ciberseguridad

«Un atacante no autenticado podría enviar un encabezado de Autorización especialmente diseñado a cualquier ruta API de LLM (por ejemplo, POST /chat/completions) y acceder a esta consulta a través de la ruta de manejo de errores del proxy. Un atacante podría leer datos de la base de datos del proxy y puede modificarlos, lo que conduciría a un acceso no autorizado al proxy y a las credenciales que administra».

La deficiencia afecta a las siguientes versiones:

Si bien la vulnerabilidad se abordó en la versión 1.83.7-estable Lanzado el 19 de abril de 2026, el primer intento de explotación se registró el 26 de abril a las 16:17 UTC, aproximadamente 26 horas y siete minutos después de que el aviso de GitHub fuera indexado en la base de datos global de avisos de GitHub. La actividad de inyección de SQL, según Sysdig, se originó en la dirección IP 65.111.27[.]132.

«La actividad maliciosa se dividió en dos fases impulsadas por el mismo operador a través de dos IP de salida adyacentes, seguidas de una breve investigación no autenticada de los puntos finales de administración de claves», dijo el investigador de seguridad Michael Clark. dicho.

Específicamente, se dice que el actor de amenaza desconocido apuntó a tablas de bases de datos como «litellm_credentials.credential_values» y «litellm_config» que contienen información relacionada con las claves del proveedor del modelo de lenguaje grande (LLM) ascendente y el entorno de ejecución del proxy. No se observaron sondas en tablas como «litellm_users» o «litellm_team».

Esto sugiere que el atacante no sólo estaba al tanto de estas tablas, sino que también persiguió aquellas que contienen secretos confidenciales. En la segunda fase del ataque, observada después de 20 minutos, el actor de la amenaza utilizó una dirección IP diferente («65.111.25[.]67»), esta vez abusando del acceso para ejecutar una investigación similar.

LiteLLM es un popular software AI Gateway de código abierto con más de 45.000 estrellas y 7.600 bifurcaciones en GitHub. El mes pasado, el proyecto fue objeto de un ataque a la cadena de suministro orquestado por el grupo de hackers TeamPCP para robar credenciales y secretos de los usuarios intermedios.

«Una sola fila litellm_credentials a menudo contiene una clave de organización OpenAI con límites de gasto mensual de cinco cifras, una clave de consola Anthropic con derechos de administrador del espacio de trabajo y una credencial AWS Bedrock IAM», dijo Sysdig. «El radio de explosión de una extracción exitosa de una base de datos está más cerca de comprometer una cuenta en la nube que de una inyección SQL típica de una aplicación web».

Ciberseguridad

Se recomienda a los usuarios que actualicen sus instancias a la última versión. Si esta no es una opción inmediata, los mantenedores recomiendan configurar «disable_error_logs: true» en «general_settings» para eliminar la ruta a través de la cual las entradas que no son de confianza llegan a la consulta vulnerable.

«La vulnerabilidad LiteLLM (GHSA-r75f-5x8p-qvmc) continúa el patrón modal para los avisos de infraestructura de IA: crítico, previo a la autenticación y en software con recuentos de estrellas de cinco cifras en los que los operadores confían para centralizar las credenciales de nivel de nube», agregó Sysdig.

«La ventana de explotación de 36 horas es consistente con el colapso más amplio documentado por el Reloj de Día Cero, y el comportamiento del operador que registramos (nombres de tablas Prisma palabra por palabra, orientación de tres tablas, enumeración deliberada de recuento de columnas) muestra que la explotación ya no espera a una prueba de concepto pública. El aviso y el esquema de código abierto fueron finalmente suficientes».

Cómo LiteLLM convirtió las máquinas de los desarrolladores en bóvedas de credenciales para los atacantes – CYBERDEFENSA.MX

La parte más activa de la infraestructura empresarial de la empresa es la estación de trabajo del desarrollador. Esa computadora portátil es donde se crean, prueban, almacenan en caché, copian y reutilizan las credenciales en servicios, bots, herramientas de compilación y, ahora, agentes de IA locales.

En marzo de 2026, el actor de amenazas TeamPCP demostró lo valiosas que son las máquinas de desarrollo. Su ataque a la cadena de suministro contra LiteLLM, una popular biblioteca de desarrollo de inteligencia artificial descargada millones de veces al día, convirtió los puntos finales de los desarrolladores en operaciones sistemáticas de recolección de credenciales. El malware solo necesitaba acceso a los secretos de texto sin formato que ya se encontraban en el disco.

El ataque LiteLLM: un estudio de caso sobre el compromiso de los terminales de los desarrolladores

El ataque fue sencillo en ejecución pero devastador en alcance. TeamPCP comprometió los paquetes LiteLLM versiones 1.82.7 y 1.82.8 en PyPI, inyectando malware de robo de información que se activaba cuando los desarrolladores instalaban o actualizaban el paquete. El malware recopiló sistemáticamente claves SSH, credenciales de nube para AWS, Azure y GCP, configuraciones de Docker y otros datos confidenciales de las máquinas de los desarrolladores.

PyPI eliminó los paquetes maliciosos a las pocas horas de su detección, pero la ventana de daño fue significativa. El análisis de GitGuardian encontró que se configuraron 1.705 paquetes PyPIpara extraer automáticamente las versiones comprometidas de LiteLLM como dependencias. Paquetes populares como dspy (5 millones de descargas mensuales), opik (3 millones) y crawl4ai (1,4 millones) habrían desencadenado la ejecución de malware durante la instalación. El efecto cascada significó que las organizaciones que nunca usaron LiteLLM directamente aún podrían verse comprometidas a través de dependencias transitivas.

Por qué las máquinas de desarrollo son objetivos atractivos

Este patrón de ataque no es nuevo; es simplemente más visible. El Campañas de Shai-Hulud demostró tácticas similares a escala. Cuando GitGuardian analizó 6.943 máquinas de desarrollador comprometidas a partir de ese incidente, los investigadores encontraron 33.185 secretos únicos, de los cuales al menos 3.760 aún eran válidos. Más sorprendente: cada secreto activo apareció en aproximadamente ocho ubicaciones diferentes en la misma máquina, y el 59% de los sistemas comprometidos eran ejecutadores de CI/CD en lugar de computadoras portátiles personales.

Los adversarios ahora entran en la cadena de herramientas a través de dependencias comprometidas, complementos maliciosos o actualizaciones envenenadas. Una vez allí, recopilan datos del entorno local con el mismo enfoque sistemático que utilizan los equipos de seguridad para buscar vulnerabilidades, excepto que buscan credenciales almacenadas en archivos .env, perfiles de shell, historial de terminal, configuraciones IDE, tokens almacenados en caché, artefactos de compilación y almacenes de memoria de agentes de IA.

Los secretos viven en todas partes en texto plano

El malware LiteLLM tuvo éxito porque las máquinas de los desarrolladores son puntos de concentración densos para las credenciales de texto sin formato. Los secretos terminan en árboles de fuentes, archivos de configuración locales, resultados de depuración, comandos de terminal copiados, variables de entorno y scripts temporales. Se acumulan en archivos .env que se suponía que eran solo locales pero que se convirtieron en una parte permanente del código base. La comodidad se convierte en residuo, que a su vez se convierte en oportunidad.

Los desarrolladores ejecutan agentes, servidores MCP locales, herramientas CLI, extensiones IDE, canalizaciones de compilación y flujos de trabajo de recuperación, todos los cuales requieren credenciales. Esas credenciales se distribuyen a través de rutas predecibles donde el malware sabe buscar: ~/.aws/credentials, ~/.config/gh/config.yml, archivos .env del proyecto, historial de shell y directorios de configuración del agente.

Protección de los puntos finales de los desarrolladores a escala

Es importante crear una protección continua en todos los puntos finales del desarrollador donde se acumulan las credenciales. GitGuardian aborda esto extendiendo la seguridad de los secretos más allá de los repositorios de código hasta la propia máquina del desarrollador.

El ataque LiteLLM demostró lo que sucede cuando las credenciales se acumulan en texto sin formato en los puntos finales de los desarrolladores. Esto es lo que puede hacer para reducir esa exposición.

Comprenda su exposición

Comience con la visibilidad. Trate la estación de trabajo como el entorno principal para escanear secretos, no como una ocurrencia tardía. Utilice ggshield para escanear repositorios locales en busca de credenciales que se filtraron en el código o persisten en el historial de Git. Analice las rutas del sistema de archivos donde se acumulan secretos fuera de Git: espacios de trabajo de proyectos, archivos de puntos, resultados de compilación y carpetas de agentes donde las herramientas locales de IA generan registros, cachés y almacenes de «memoria».

ggshield detecta un secreto en un archivo específico desde una ruta

No asuma que las variables de entorno son seguras sólo porque no están en archivos. Los perfiles de Shell, las configuraciones IDE y los artefactos generados a menudo persisten en los valores del entorno en el disco de forma indefinida. Escanee estas ubicaciones de la misma manera que escanea los repositorios.

Agregue ganchos de confirmación previa de ggshield para dejar de crear nuevas fugas en las confirmaciones mientras limpia las antiguas. Esto convierte la detección secreta en una barrera de seguridad predeterminada que detecta los errores antes de que se conviertan en incidentes.

Comando de confirmación previa de ggshield que detecta un secreto

Mover secretos a bóvedas

La detección sin remediación es sólo ruido. Cuando se filtra una credencial, la remediación generalmente requiere la coordinación entre varios equipos: la seguridad identifica la exposición, la infraestructura es propietaria del servicio, es posible que el desarrollador original haya abandonado la empresa y los equipos de producto se preocupan por las interrupciones en la producción. Sin una propiedad clara y una automatización del flujo de trabajo, la remediación se convierte en un proceso manual al que se le quita prioridad.

La solución trata los secretos como identidades administradas con propiedad definida, políticas de ciclo de vida y rutas de reparación automatizadas. Mueva las credenciales a una infraestructura de bóveda centralizada donde los equipos de seguridad puedan aplicar programas de rotación, políticas de acceso y monitoreo de uso. Integre la gestión de incidentes con sus sistemas de emisión de tickets existentes para que la solución se produzca en contexto en lugar de requerir un cambio constante de herramientas.

GitGuardian Analytics que muestra el estado de los secretos que se están monitoreando

Trate a los agentes de IA como riesgos de credenciales

Las herramientas agentes pueden leer archivos, ejecutar comandos y mover datos. Con los agentes estilo OpenClaw, la «memoria» son literalmente archivos en el disco (SOUL.md, MEMORY.md) almacenados en ubicaciones predecibles. Nunca pegue credenciales en los chats de los agentes, nunca les enseñe secretos a los agentes «para más tarde» y escanee de forma rutinaria los archivos de memoria de los agentes como almacenes de datos confidenciales.

Eliminar clases enteras de secretos

La forma más rápida de reducir la proliferación de secretos es eliminar la necesidad de categorías enteras de secretos compartidos. En el lado humano, adopte WebAuthn (claves de acceso) para reemplazar las contraseñas. En cuanto a la carga de trabajo, migre a la federación OIDC, para que las canalizaciones dejen de depender de las claves almacenadas en la nube y los secretos de las cuentas de servicio.

Comience con las rutas de mayor riesgo donde las credenciales filtradas perjudican más y luego amplíe. Mueva el acceso de desarrollador a claves de acceso y migre flujos de trabajo de CI/CD a autenticación basada en OIDC.

Utilice credenciales efímeras

Si aún no puede eliminar los secretos, hágalos de corta duración y reemplácelos automáticamente. Utilice SPIFFE para emitir documentos de identidad criptográficos (SVID) que rotan automáticamente en lugar de depender de claves API estáticas.

Comience con claves de nube, tokens de implementación y credenciales de servicio de larga duración que los desarrolladores conservan localmente para su comodidad. Cambie a tokens de corta duración, rotación automática y patrones de identidad de cargas de trabajo. Cada migración es un secreto menos duradero que puede ser robado y convertido en arma.

El objetivo es reducir el valor que un atacante puede extraer de cualquier punto de apoyo exitoso en una máquina de desarrollador.

Honeytokens como sistemas de alerta temprana

Los Honeytokens brindan protección provisional. Coloque credenciales señuelo en ubicaciones a las que los atacantes apuntan sistemáticamente: directorios de inicio de desarrolladores, rutas de configuración comunes y almacenes de memoria de agentes. Cuando se recolectan y validan, estos tokens generan alertas inmediatas, comprimiendo el tiempo de detección de «descubrir daños semanas después» a «detectar ataques mientras se desarrollan». Este no es el estado final, pero cambia la ventana de respuesta mientras continúa la limpieza sistemática.

Los puntos finales de desarrollador ahora son parte de su infraestructura crítica. Se encuentran en la intersección del privilegio, la confianza y la ejecución. El incidente de LiteLLM demostró que los adversarios entienden esto mejor que la mayoría de los programas de seguridad. Las organizaciones que traten las máquinas de desarrollo con la misma disciplina de gobernanza que ya se aplica a los sistemas de producción serán las que sobrevivan al próximo compromiso de la cadena de suministro.

¿Encontró interesante este artículo? Este artículo es una contribución de uno de nuestros valiosos socios. Síguenos en noticias de google, Gorjeo y LinkedIn para leer más contenido exclusivo que publicamos.

TeamPCP Backdoors LiteLLM Versiones 1.82.7–1.82.8 Probablemente a través del compromiso Trivy CI/CD – CYBERDEFENSA.MX

TeamPCP, el actor de amenazas detrás de los recientes compromisos de Trivy y KICS, ahora ha comprometido un popular paquete de Python llamado litelmoimpulsando dos versiones maliciosas que contienen un recolector de credenciales, un conjunto de herramientas de movimiento lateral de Kubernetes y una puerta trasera persistente.

Múltiples proveedores de seguridad, incluidos Laboratorios Endor y JFrogreveló que las versiones 1.82.7 y 1.82.8 de Litellm eran publicado el 24 de marzo de 2026, probablemente debido a la uso del paquete de Trivy en su flujo de trabajo CI/CD. Desde entonces, ambas versiones con puerta trasera se han eliminado de PyPI.

«La carga útil es un ataque de tres etapas: un recolector de credenciales que barre claves SSH, credenciales de nube, secretos de Kubernetes, billeteras de criptomonedas y archivos .env; un conjunto de herramientas de movimiento lateral de Kubernetes que implementa pods privilegiados en cada nodo; y una puerta trasera persistente systemd (sysmon.service) que sondea ‘checkmarx[.]zona/sin procesar’ para binarios adicionales», dijo el investigador de Endor Labs, Kiran Raj.

Ciberseguridad

Como se observó en casos anteriores, los datos recopilados se extraen como un archivo cifrado («tpcp.tar.gz») a un dominio de comando y control llamado «models.litellm».[.]nube» a través de una solicitud HTTPS POST.

En el caso de 1.82.7, el código malicioso está incrustado en el archivo «litellm/proxy/proxy_server.py», y la inyección se realiza durante o después del proceso de creación de la rueda. El código está diseñado para ejecutarse en el momento de la importación del módulo, de modo que cualquier proceso que importe «litellm.proxy.proxy_server» active la carga útil sin requerir ninguna interacción del usuario.

La siguiente iteración del paquete agrega un «vector más agresivo» al incorporar un «litellm_init.pth» malicioso en la raíz de la rueda, lo que hace que la lógica se ejecute automáticamente en cada inicio de proceso Python en el entorno, no solo cuando se importa litellm.

Otro aspecto que hace que 1.82.8 sea más peligroso es el hecho de que el iniciador .pth genera un proceso secundario de Python a través de subproceso.Popenque permite que la carga útil se ejecute en segundo plano.

«Los archivos Python .pth colocados en los paquetes del sitio son procesados ​​automáticamente por site.py al iniciar el intérprete», dijo Endor Labs. «El archivo contiene una sola línea que importa un subproceso e inicia un proceso Python independiente para decodificar y ejecutar la misma carga útil Base64».

La carga útil se decodifica en un orquestador que descomprime un recolector de credenciales y un cuentagotas de persistencia. El recolector también aprovecha el token de la cuenta de servicio de Kubernetes (si está presente) para enumerar todos los nodos del clúster e implementar un pod privilegiado en cada uno de ellos. La vaina entonces chroots en el sistema de archivos del host e instala el cuentagotas de persistencia como un servicio de usuario systemd en cada nodo.

El servicio systemd está configurado para iniciar un script de Python («~/.config/sysmon/sysmon.py»), el mismo nombre utilizado en el compromiso Trivy, que llega a «checkmarx[.]zona/raw» cada 50 minutos para obtener una URL que apunte a la carga útil de la siguiente etapa. Si la URL contiene youtube[.]com, el script aborta la ejecución, un patrón de interrupción común a todos los incidentes observados hasta ahora.

«Es casi seguro que esta campaña no ha terminado», dijo Endor Labs. «TeamPCP ha demostrado un patrón consistente: cada entorno comprometido genera credenciales que desbloquean el siguiente objetivo. El giro de CI/CD (ejecutores de GitHub Actions) a producción (paquetes PyPI que se ejecutan en clústeres de Kubernetes) es una escalada deliberada».

Con el último desarrollo, TeamPCP ha emprendido una incesante campaña de ataque a la cadena de suministro que ha generado cinco ecosistemas, incluidos GitHub Actions, Docker Hub, npm, Open VSX y PyPI, para expandir su huella de objetivos y poner cada vez más sistemas bajo su control.

«TeamPCP está intensificando una campaña coordinada dirigida a herramientas de seguridad e infraestructura de desarrollo de código abierto, y ahora se está atribuyendo abiertamente el mérito de múltiples ataques posteriores en todos los ecosistemas», Socket dicho. «Esta es una operación sostenida que apunta a puntos de alto apalancamiento en la cadena de suministro de software».

en un mensaje al corriente En su canal de Telegram, TeamPCP dijo: «Estas empresas fueron creadas para proteger sus cadenas de suministro, pero ni siquiera pueden proteger las suyas propias, el estado de la investigación de seguridad moderna es una broma, como resultado, estaremos por mucho tiempo robando terrabytes». [sic] de secretos comerciales con nuestros nuevos socios».

«El efecto bola de nieve de esto será enorme, ya nos estamos asociando con otros equipos para perpetuar el caos, muchas de sus herramientas de seguridad favoritas y proyectos de código abierto serán atacados en los próximos meses, así que estén atentos», dijo el actor de amenazas. agregado.

Ciberseguridad

Se recomienda a los usuarios que realicen las siguientes acciones para contener la amenaza:

  • Audite todos los entornos para las versiones 1.82.7 o 1.82.8 de Litellm y, si los encuentra, vuelva a una versión limpia.
  • Aislar los huéspedes afectados
  • Verifique la presencia de pods no autorizados en los clústeres de Kubernetes
  • Revise los registros de red para ver el tráfico de salida a «models.litellm[.]nube» y «checkmarx[.]zona»
  • Eliminar los mecanismos de persistencia.
  • Audite las canalizaciones de CI/CD para detectar el uso de herramientas como Trivy y KICS durante las ventanas de compromiso.
  • Revocar y rotar todas las credenciales expuestas

«La cadena de suministro de código abierto se está derrumbando sobre sí misma», dijo Gal Nagli, jefe de exposición a amenazas en Wiz, propiedad de Google. dicho en una publicación en X. «Trivy se ve comprometido → LiteLLM se ve comprometido → las credenciales de decenas de miles de entornos terminan en manos de atacantes → y esas credenciales conducen al siguiente compromiso. Estamos atrapados en un bucle».