Una falla de seguridad crítica fue descubierta en LangChain, uno de los frameworks de inteligencia artificial más utilizados en el mundo, exponiendo millones de aplicaciones al riesgo de robo de credenciales e inyección de código malicioso. La vulnerabilidad permite que atacantes exploten la lógica central de serialización de LangChain para extraer variables de entorno y ejecutar acciones no autorizadas, poniendo en riesgo claves de API, credenciales y datos sensibles en todo el ecosistema de IA.
El vector de ataque se centra en las funciones de serialización de LangChain que fallaron en manejar adecuadamente datos controlados por usuarios. Las funciones dumps() y dumpd() no escapan diccionarios que contienen claves 'lc', marcadores internos que LangChain usa para identificar sus propios objetos serializados. Cuando actores maliciosos inyectan datos con estas claves especiales, el sistema los trata como contenido legítimo de LangChain durante la deserialización, en lugar de entrada no confiable de usuario. La vulnerabilidad fue descubierta por un especialista en seguridad de Cyata durante auditorías de límites de confianza de IA.
La falla habilita múltiples caminos de ataque devastadores, incluyendo extracción de secretos de variables de entorno cuando la deserialización se ejecuta con 'secrets_from_env=True', instanciación de clases dentro de namespaces confiables como langchain_core y langchain_community, y potencial ejecución arbitraria de código a través de plantillas Jinja2. Los atacantes pueden crear prompts para instanciar clases permitidas, desencadenando ataques SSRF con variables de entorno incorporadas en encabezados para exfiltración de datos. Como esto afecta flujos comunes como streaming de eventos, logging y caching, virtualmente cualquier aplicación LangChain que procese datos no confiables puede estar comprometida.
LangChain respondió rápidamente a la divulgación, lanzando parches que cambian fundamentalmente la forma en que el framework maneja la seguridad de serialización. Las correcciones incluyen nuevos parámetros de lista de permisos en las funciones load() y loads() para especificar qué clases pueden ser serializadas y deserializadas, plantillas Jinja2 ahora bloqueadas por defecto, y la opción peligrosa 'secrets_from_env' cambiada a 'False' para prevenir la carga automática de secretos de variables de entorno. Las versiones vulnerables incluyen langchain-core >= 1.0.0, < 1.2.5 y < 0.3.81, con correcciones disponibles en las versiones 1.2.5 y 0.3.81. Originalmente reportada vía Huntr el 4 de diciembre de 2024, LangChain reconoció la vulnerabilidad al día siguiente y publicó el aviso el 24 de diciembre. Una vulnerabilidad paralela también afectó a LangChainJS, rastreada como CVE-2025-68665, demostrando que este problema de inyección de serialización afecta a todo el ecosistema LangChain. Expertos en ciberseguridad están emitiendo alertas urgentes para que los desarrolladores actualicen langchain-core inmediatamente y verifiquen que dependencias como langchain-community también hayan sido actualizadas.
Este post fue traducido y resumido a partir de su versión original con el uso de IA, con revisión humana.
Con información de Cybersecurity News