Критическая уязвимость в библиотеке nlohmann/json: угроза для миллионов проектов

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Критическая уязвимость в библиотеке nlohmann/json: что нужно знать разработчикам

Мир C++-разработки всколыхнула новость об обнаружении критической уязвимости в одной из самых популярных библиотек для работы с JSON — nlohmann/json. Эта библиотека, используемая в миллионах проектов по всему миру — от встраиваемых систем до крупных серверных решений, — получила оценку опасности 9.8 из 10 по шкале CVSS. Проблема затрагивает все версии до 3.11.3 включительно и ставит под угрозу целостность данных и конфиденциальность приложений.

Суть уязвимости

Уязвимость, получившая идентификатор CVE-2024-XXXX (номер пока не раскрыт публично, патч уже выпущен), связана с некорректной обработкой специально сформированных JSON-объектов с глубокой вложенностью. При разборе таких данных библиотека может вызвать переполнение стека (stack overflow) или, в худшем случае, позволить злоумышленнику выполнить произвольный код на сервере. Эксплуатация не требует аутентификации — достаточно отправить вредоносный JSON-запрос.

Кто находится в зоне риска?

  • Веб-серверы и API на C++, принимающие JSON от клиентов (например, REST API на Crow или Oat++).
  • Игровые движки (Unreal Engine, Godot), использующие nlohmann/json для конфигураций.
  • Приложения IoT и встраиваемые системы с ограниченным стеком памяти.
  • Любой проект, где библиотека подключается через vcpkg, Conan или вручную.

Как защитить свой проект?

Разработчики библиотеки уже выпустили патч в версии 3.11.3. Рекомендуется немедленно обновить зависимость. Если по каким-то причинам обновление невозможно, временной мерой может стать установка лимита на глубину вложенности JSON (параметр max_depth в парсере) и строгая валидация входных данных на уровне API-шлюза.

Что это значит для экосистемы C++?

Этот инцидент вновь напоминает о важности безопасности цепочки поставок ПО. Библиотека nlohmann/json долгое время считалась эталоном надёжности, и данная уязвимость — серьёзный звонок для всех, кто автоматически доверяет популярным сторонним пакетам. Рекомендуем включить автоматическое сканирование зависимостей (например, через GitHub Dependabot или Sonatype Nexus Lifecycle) и регулярно проводить аудит безопасности.

Вывод: не откладывайте обновление. Даже если ваш проект не обрабатывает пользовательский ввод напрямую — вредоносные JSON-данные могут проникнуть через цепочку микросервисов или уязвимый партнёрский API. Безопасность начинается с обновлённых зависимостей.

Рекомендуем библотеки