В ноябре 2025 года была подтверждена и устранена высокорисковая уязвимость в компоненте LangGraph Checkpoint, популярной библиотеки для построения графов состояний в приложениях с искусственным интеллектом. Уязвимость, зарегистрированная под идентификаторами BDU:2025-14813 и CVE-2025-45527, связана с недостатками механизма десериализации в протоколе JsonPlusSerializer. Эксплуатация этой уязвимости позволяет удаленному злоумышленнику, имеющему привилегии для отправки вредоносных (malicious) данных, выполнить произвольный код в контексте уязвимого приложения.
Детали уязвимости
Проблема затрагивает версии LangGraph Checkpoint до 3.0.0 и классифицируется как "Десериализация ненадежных данных" (CWE-502). По своей сути, это архитектурная уязвимость в модуле, ответственном за сохранение и восстановление контрольных точек состояний графов в базах данных SQLite. Некорректная обработка специально сформированных структур данных в процессе десериализации может привести к выполнению произвольного кода. Следовательно, атакующий может получить полный контроль над системой, нарушить целостность данных или вызвать отказ в обслуживании.
Оценка по различным версиям системы CVSS (Common Vulnerability Scoring System) подчеркивает серьезность угрозы. Балл CVSS 3.1 достигает критического уровня 9.6. Вектор атаки характеризуется как сетевой (AV:N), не требующий сложных условий эксплуатации (AC:L). При этом для успешной атаки злоумышленнику необходимы учетные данные с низкими привилегиями (PR:L), что делает уязвимость особенно опасной в многопользовательских средах. Высокие показатели влияния на целостность (I:H) и доступность (A:H) подтверждают потенциально катастрофические последствия.
Согласно банку данных уязвимостей (BDU), способ эксплуатации связан с манипулированием структурами данных. Фактически, это означает, что злоумышленник может внедрить вредоносную полезную нагрузку в данные, предназначенные для десериализации JsonPlusSerializer. После этого, при восстановлении состояния системы из контрольной точки, происходит выполнение встроенного кода. Важно отметить, что эксплойт для данной уязвимости уже существует в открытом доступе, что значительно повышает актуальность немедленного применения патча.
Разработчики из сообщества LangChain оперативно отреагировали на обнаруженную проблему. Уязвимость была подтверждена, а ее устранение включено в выпуск LangGraph Checkpoint версии 3.0.0. Основное исправление было реализовано в файле "jsonplus.py" системы сериализации. Сообщество рекомендует всем пользователям и разработчикам, применяющим эту библиотеку в своих проектах, немедленно обновить ее до актуальной версии. Это является единственным надежным способом устранения риска.
В качестве временных мер смягчения угрозы, до момента обновления, специалисты по кибербезопасности советуют ограничить сетевой доступ к интерфейсам или сервисам, использующим уязвимую версию. Кроме того, следует применять принцип минимальных привилегий, снижая потенциальный ущерб от возможного компрометации учетной записи с низким уровнем доступа. Регулярный аудит логов на предмет подозрительных операций с контрольными точками также может помочь в раннем обнаружении инцидента.
Данный случай наглядно иллюстрирует классические риски, связанные с десериализацией непроверенных данных - проблему, которая остается актуальной уже много лет, несмотря на ее известность. Интеграция сторонних компонентов, таких как LangGraph, в сложные цепочки обработки данных для ИИ требует тщательного управления зависимостями и мониторинга уязвимостей. Разработчикам следует всегда валидировать и санитазировать входные данные, особенно когда они используются для операций, влияющих на состояние приложения.
Таким образом, уязвимость в LangGraph Checkpoint представляет собой существенную угрозу. Ее критический уровень опасности и наличие работающего эксплойта в открытом доступе делают обновление до версии 3.0.0 безотлагательным действием для всех, кто использует эту библиотеку в production-средах. Своевременное применение патчей остается краеугольным камнем защиты от подобных уязвимостей, позволяющих добиться устойчивости (persistence) в системе и выполнить произвольный код.
Ссылки
- https://bdu.fstec.ru/vul/2025-14813
- https://nvd.nist.gov/vuln/detail/CVE-2024-45527
- https://github.com/langchain-ai/langgraph/security/advisories/GHSA-wwqv-p2pp-99h5
- https://github.com/langchain-ai/langgraph/blob/c5744f583b11745cd406f3059903e17bbcdcc8ac/libs/checkpoint/langgraph/checkpoint/serde/jsonplus.py
- https://github.com/langchain-ai/langgraph/commit/c5744f583b11745cd406f3059903e17bbcdcc8ac
- https://github.com/langchain-ai/langgraph/releases/tag/checkpoint%3D%3D3.0.0