В библиотеке сериализации контрольных точек LangGraph обнаружена критическая уязвимость удаленного выполнения кода (Remote Code Execution, RCE), затрагивающая версии до 3.0. Проблема получила идентификатор CVE-2025-64439 и оценку высокой серьезности 7.5 по шкале CVSS v4.
Детали уязвимости
Уязвимость локализована в компоненте JsonPlusSerializer, который является протоколом сериализации по умолчанию для всех операций контрольных точек. Эксплуатация уязвимости позволяет злоумышленникам выполнять произвольный код Python в процессе десериализации вредоносных нагрузок (malicious payloads).
Механизм уязвимости основан на небезопасном механизме резервного копирования в JsonPlusSerializer. Обычно библиотека использует msgpack для сериализации, однако при возникновении недопустимых суррогатных значений Unicode система автоматически переключается в режим "json". В процессе десериализации в этом режиме система поддерживает конструкторский формат, который восстанавливает пользовательские объекты во время загрузки. Соответственно, злоумышленники могут использовать эту функциональность, создавая вредоносные нагрузки, выполняющие системные команды или произвольные функции.
Практический риск существенно варьируется в зависимости от конфигурации системы. Например, уязвимость затрагивает только пользователей langgraph-checkpoint версий ранее 3.0, которые разрешают сохранение непроверенных или предоставляемых пользователем данных в контрольные точки. Системы, обрабатывающие исключительно доверенные данные или ограничивающие запись в контрольные точки, имеют значительно сниженный риск эксплуатации. Тем не менее, любая система, принимающая внешний ввод, требует немедленного внимания и установки исправлений.
Разработчики LangGraph уже выпустили версию 3.0.0 библиотеки контрольных точек с полным устранением уязвимости. Исправление реализует систему разрешенного списка (allowlist) для десериализации конструкторов, ограничивая допустимые пути выполнения кода явно одобренными комбинациями модулей и классов. Кроме того, сохранение нагрузок в формате "json" было объявлено устаревшим, что полностью устраняет небезопасный механизм резервного копирования.
Обновление полностью совместимо с LangGraph 0.3 и не требует модификаций кода для реализации. Организациям следует немедленно обновиться до версии langgraph-checkpoint 3.0.0. Пользователи, развертывающие LangGraph API, должны обновиться до версии 0.5 или новее, которая автоматически включает исправленную библиотеку контрольных точек. Процесс обновления является straightforward и не требует изменений импорта или модификаций кода приложения.
Учитывая высокий рейтинг серьезности и простоту эксплуатации, это исправление следует рассматривать как критический приоритет в графике обновления безопасности. Системные администраторы и разработчики должны провести инвентаризацию всех развернутых экземпляров LangGraph и обеспечить применение патча в кратчайшие сроки. Особенное внимание следует уделить системам, доступным извне или обрабатывающим данные от ненадежных источников.
С точки зрения безопасности данных, эксплуатация этой уязвимости может привести к полному компрометированию затронутых систем. Например, успешная атака может привести к установке программ-вымогателей (ransomware), краже конфиденциальной информации или созданию точки постоянства (persistence) в системе. Поэтому своевременное применение исправлений является критически важной мерой защиты.
В более широком контексте этот инцидент подчеркивает сохраняющиеся проблемы безопасности в механизмах сериализации и десериализации данных. Сообщество разработчиков продолжает сталкиваться с подобными уязвимостями в различных фреймворках и библиотеках. Следовательно, организациям следует рассмотреть реализацию дополнительных мер контроля, таких как строгая проверка вводимых данных и принцип минимальных привилегий для компонентов, обрабатывающих сериализованные данные.
В заключение стоит отметить, что современные системы безопасности должны включать многоуровневую защиту. Даже после применения исправления рекомендуется проводить регулярный мониторинг активности и аудит систем на предмет потенциальных инцидентов безопасности. Проактивный подход к управлению уязвимостями остается наиболее эффективной стратегией защиты от постоянно развивающихся киберугроз.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-64439
- https://nvd.nist.gov/vuln/detail/CVE-2025-64439
- https://github.com/langchain-ai/langgraph/security/advisories/GHSA-wwqv-p2pp-99h5
- https://github.com/langchain-ai/langgraph/commit/c5744f583b11745cd406f3059903e17bbcdcc8ac
- https://github.com/langchain-ai/langgraph/blob/c5744f583b11745cd406f3059903e17bbcdcc8ac/libs/checkpoint/langgraph/checkpoint/serde/jsonplus.py
- https://github.com/langchain-ai/langgraph/releases/tag/checkpoint%3D%3D3.0.0