
Se ha revelado una falla de seguridad crítica en LangChain Core. Un atacante también puede aprovecharlo para robar secretos confidenciales e influir en las respuestas del modelo de lenguaje a gran escala (LLM) mediante una inyección rápida.
LangChain Core (es decir, langchain-core) es un paquete central de Python que forma parte del ecosistema LangChain y proporciona interfaces centrales y abstracciones independientes del modelo para crear aplicaciones basadas en LLM.
Esta vulnerabilidad se rastrea como CVE-2025-68664 y tiene una puntuación CVSS de 9,3 sobre 10,0. Según los informes, el investigador de seguridad Yarden Porat informó sobre la vulnerabilidad el 4 de diciembre de 2025. El nombre en clave es LangGrinch.
«Existe una vulnerabilidad de inyección de serialización en las funciones dumps() y dumpd() de LangChain», dijeron los administradores del proyecto en un aviso. «La función no escapa del diccionario usando la tecla ‘lc’ al serializar un diccionario de formato libre».

«LangChain utiliza internamente la clave ‘lc’ para marcar objetos serializados. Si los datos controlados por el usuario contienen esta estructura de clave, serán tratados como un objeto LangChain normal durante la deserialización en lugar de datos simples del usuario».
Según Porat, investigador de Cyata, el quid de la cuestión tiene que ver con dos funciones que no logran escapar de los diccionarios controlados por el usuario que contienen la clave «lc». El marcador «lc» representa un objeto LangChain en el formato de serialización interno del marco.
«Entonces, si un atacante pudiera serializar y luego deserializar el contenido que contiene la clave ‘lc’ en el bucle de orquestación de LangChain, se podría crear una instancia de un objeto inseguro arbitrario, lo que desencadenaría muchos caminos a favor del atacante», dijo Porat.
Esto puede tener una variedad de consecuencias, 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, langchain_community, e incluso potencialmente conducir a la ejecución de código arbitrario a través de plantillas Jinja2.
Ademá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 mediante inyección rápida, _kwargs adicionales o metadatos de respuesta.
Un parche lanzado por LangChain introduce nuevos valores predeterminados restrictivos para load() y loads() con 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 ahora están bloqueadas de forma predeterminada y la opción «secrets_from_env» 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 (fijado en 1.2.5) < 0.3.81 (fijado en 0.3.81)
Vale la pena señalar que existe una falla de inyección de serialización similar en LangChain.js. Esto también se debe a que no se escapa correctamente del objeto con la tecla «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 (0.3.80で修正) langchain >= 1.0.0, < 1.2.3 (fijado en 1.2.3) langchain < 0.3.37 (fijado en 0.3.37)
Dada la importancia de esta vulnerabilidad, recomendamos que los usuarios actualicen a la 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 add_kwargs y Response_metadata, que pueden controlarse mediante inyección rápida y serializarse/deserializarse en operaciones de transmisión», dijo Porat. «Esta es exactamente la intersección entre ‘la IA y la seguridad tradicional’ donde las organizaciones quedan sorprendidas. El resultado del LLM es un insumo que no es confiable».
Source link
