Исследователь Ярден Порат из организации Cyata 4 декабря 2025 года сообщил о критической уязвимости в популярном Python-пакете

Техническая причина сбоя заключается в некорректной работе функций
Механизм атаки подразумевает, что злоумышленник заставляет цикл оркестрации сериализовать и затем десериализовать контент с ключом «lc». Это действие приводит к созданию небезопасного произвольного объекта, активируя пути выполнения кода, выгодные атакующему. Основным вектором атаки является промпт-инъекция, через которую злоумышленники получают контроль над такими полями, как
Последствия эксплуатации CVE-2025-68664 могут быть катастрофическими для безопасности приложения. Уязвимость позволяет извлекать секреты из переменных окружения, особенно если активирована настройка
Помимо кражи данных, LangGrinch создает риски выполнения произвольного кода, что может быть достигнуто с использованием шаблонов Jinja2. Также злоумышленники могут манипулировать поведением LLM, влияя на ответы модели. Как отметил исследователь Ярден Порат, этот инцидент демонстрирует пересечение проблем искусственного интеллекта и классической безопасности: «Выходные данные LLM являются ненадежными входными данными».
Разработчики LangChain выпустили исправление, внедряющее строгие ограничения по умолчанию. В функции
Для устранения уязвимости в Python-пакете
Аналогичная уязвимость инъекции сериализации была обнаружена и в JavaScript-версии библиотеки —
Исправления для JavaScript-экосистемы распределены по нескольким пакетам. Основная библиотека
langchain-core, который предоставляет базовые интерфейсы для приложений на основе больших языковых моделей (LLM). Уязвимость, получившая кодовое название LangGrinch и идентификатор CVE-2025-68664, была оценена как критическая с показателем 9.3 из 10.0 по шкале CVSS. Проблема кроется в механизме сериализации данных и позволяет злоумышленникам выполнять произвольный код или извлекать конфиденциальную информацию. 
Изображение носит иллюстративный характер
Техническая причина сбоя заключается в некорректной работе функций
dumps() и dumpd(), которые не выполняют надлежащее экранирование пользовательских словарей, содержащих ключ «lc». В архитектуре LangChain этот ключ используется внутренними процессами для маркировки сериализованных объектов. Если контролируемые пользователем данные содержат этот ключ, система ошибочно воспринимает их как легитимный объект LangChain в процессе десериализации, а не как обычные данные, что открывает путь для инъекции сериализации. Механизм атаки подразумевает, что злоумышленник заставляет цикл оркестрации сериализовать и затем десериализовать контент с ключом «lc». Это действие приводит к созданию небезопасного произвольного объекта, активируя пути выполнения кода, выгодные атакующему. Основным вектором атаки является промпт-инъекция, через которую злоумышленники получают контроль над такими полями, как
metadata, additional_kwargs и response_metadata. Эти поля обрабатываются во время потоковых операций, позволяя вредоносному коду проникнуть в систему. Последствия эксплуатации CVE-2025-68664 могут быть катастрофическими для безопасности приложения. Уязвимость позволяет извлекать секреты из переменных окружения, особенно если активирована настройка
secrets_from_env=True. Кроме того, становится возможным небезопасное создание классов в рамках доверенных пространств имен, таких как langchain_core, langchain и langchain_community. Помимо кражи данных, LangGrinch создает риски выполнения произвольного кода, что может быть достигнуто с использованием шаблонов Jinja2. Также злоумышленники могут манипулировать поведением LLM, влияя на ответы модели. Как отметил исследователь Ярден Порат, этот инцидент демонстрирует пересечение проблем искусственного интеллекта и классической безопасности: «Выходные данные LLM являются ненадежными входными данными».
Разработчики LangChain выпустили исправление, внедряющее строгие ограничения по умолчанию. В функции
load() и loads() был добавлен новый параметр allowed_objects (белый список), определяющий допустимые классы. Использование шаблонов Jinja2 теперь заблокировано по умолчанию, а опция secrets_from_env переведена в состояние «False», что отключает автоматическую загрузку секретов из окружения. Для устранения уязвимости в Python-пакете
langchain-core пользователям версий от 0.0 до 1.2.5 необходимо обновиться до версии 1.2.5. Для тех, кто использует версии ниже 0.3.81, исправление включено в выпуск 0.3.81. Обновление является обязательным для предотвращения рисков удаленного выполнения кода и утечки данных. Аналогичная уязвимость инъекции сериализации была обнаружена и в JavaScript-версии библиотеки —
LangChain.js. Ей присвоен идентификатор CVE-2025-68665 и оценка CVSS 8.6. Проблема также связана с неправильным экранированием ключей «lc», что требует немедленного обновления затронутых пакетов в экосистеме JavaScript. Исправления для JavaScript-экосистемы распределены по нескольким пакетам. Основная библиотека
LangChain.js (версии от 0.0 до 1.1.8) исправлена в версии 1.1.8. Пакет @langchain/core версии ниже 0.3.80 обновлен в версии 0.3.80. Для пакета langchain версии от 1.0.0 до 1.2.3 патч выпущен в версии 1.2.3, а для версий ниже 0.3.37 — в 0.3.37.