Se ha revelado una falla de seguridad crítica en Núcleo de LangChain que podría ser aprovechado por un atacante para robar secretos confidenciales e incluso influir en las respuestas del modelo de lenguaje grande (LLM) mediante una inyección rápida.
Núcleo LangChain (es decir, núcleo de cadena larga) es un paquete central de Python que forma parte del ecosistema LangChain y proporciona las interfaces principales y abstracciones independientes del modelo para crear aplicaciones impulsadas por LLM.
La vulnerabilidad, rastreada como CVE-2025-68664, tiene una puntuación CVSS de 9,3 sobre 10,0. Al investigador de seguridad Yarden Porat se le atribuye haber informado de la vulnerabilidad el 4 de diciembre de 2025. Tiene el nombre en código LangGrinch.
«Existe una vulnerabilidad de inyección de serialización en LangChain volcados() y volcado() funciones», los mantenedores del proyecto dicho en un aviso. «Las funciones no escapan a los diccionarios con claves 'lc' al serializar diccionarios de formato libre».
«LangChain utiliza internamente la clave 'lc' para marcar objetos serializados. Cuando los datos controlados por el usuario contienen esta estructura de clave, se tratan como un objeto LangChain legítimo durante la deserialización en lugar de datos simples del usuario».
Según Porat, investigador de Cyata, el meollo del problema tiene que ver con que las dos funciones no logran escapar de los diccionarios controlados por el usuario que contienen claves «lc». El marcador «lc» representa objetos LangChain en el formato de serialización interno del marco.
«Entonces, una vez que un atacante puede hacer que un bucle de orquestación de LangChain serialice y luego deserialice el contenido, incluida una clave 'lc', creará una instancia de un objeto arbitrario inseguro, lo que potencialmente desencadenará muchas rutas amigables para el atacante», Porat dicho.
Esto podría tener varios resultados, incluida la extracción de secretos de variables de entorno cuando la deserialización se realiza con «secrets_from_env=True» (previamente configurado de forma predeterminada), la creación de instancias de clases dentro de espacios de nombres confiables aprobados previamente, como langchain_core, langchain y langchain_community, y potencialmente incluso conducir a la ejecución de código arbitrario a través de plantillas Jinja2.
Es más, el error de escape permite la inyección de estructuras de objetos LangChain a través de campos controlados por el usuario como metadatos, adicional_kwargs o respuesta_metadata mediante inyección rápida.
El parche lanzado por LangChain introduce nuevos valores predeterminados restrictivos en load() y loads() mediante un parámetro de lista permitida «allowed_objects» que permite a los usuarios especificar qué clases se pueden serializar/deserializar. Además, las plantillas de Jinja2 están bloqueadas de forma predeterminada y la opción «secrets_from_env» ahora está configurada en «False» para deshabilitar la carga automática de secretos desde el entorno.
Las siguientes versiones de langchain-core se ven afectadas por CVE-2025-68664:
- >= 1.0.0, < 1.2.5 (Corregido en 1.2.5)
- < 0.3.81 (Fijo en 0.3.81)
Vale la pena señalar que existe una falla de inyección de serialización similar en LangChain.js eso también se debe a que no se escapan correctamente los objetos con claves «lc», lo que permite la extracción secreta y la inyección rápida. A esta vulnerabilidad se le ha asignado el identificador CVE CVE-2025-68665 (puntuación CVSS: 8,6).
Afecta a los siguientes paquetes npm:
- @langchain/core >= 1.0.0, < 1.1.8 (Corregido en 1.1.8)
- @langchain/core < 0.3.80 (Corregido en 0.3.80)
- langchain >= 1.0.0, < 1.2.3 (Corregido en 1.2.3)
- langchain <0.3.37 (Corregido en 0.3.37)
A la luz de la gravedad de la vulnerabilidad, se recomienda a los usuarios que actualicen a una versión parcheada lo antes posible para una protección óptima.
«El vector de ataque más común es a través de campos de respuesta LLM como adicional_kwargs o respuesta_metadata, que pueden controlarse mediante inyección rápida y luego serializarse/deserializarse en operaciones de transmisión», dijo Porat. «Este es exactamente el tipo de intersección entre la IA y la seguridad clásica donde las organizaciones quedan sorprendidas. Los resultados del LLM son un insumo en el que no se confía».
Fuente





