Критическая уязвимость удалённого выполнения кода CVE-2026-16723 в библиотеке Alibaba Fastjson 1.x (версии 1.2.68–1.2.83) позволяет атакующему выполнить произвольный код через вредоносный JSON-запрос без аутентификации — при условии, что приложение развёрнуто как Spring Boot fat-JAR, а SafeMode оставлен в отключённом состоянии по умолчанию. Alibaba присвоила уязвимости оценку CVSS 9.0. По данным компаний ThreatBook и Imperva, попытки эксплуатации уже фиксируются в реальном трафике, при этом на момент 25 июля патч для Fastjson 1.x не выпущен. Организациям, использующим затронутые версии, необходимо немедленно включить SafeMode или мигрировать на Fastjson2.
Технические детали уязвимости
Alibaba опубликовала рекомендацию по безопасности 21 июля после ответственного раскрытия исследователем Кириллом Фирсовым из FearsOff Cybersecurity. Вендор подтвердил воспроизведение цепочки эксплуатации на Spring Boot 2.x, 3.x и 4.x с JDK 8, 11, 17 и 21.
Ключевые характеристики уязвимости, подтверждённые Alibaba:
- Затронутые версии: Fastjson 1.2.68 — 1.2.83
- Условие эксплуатации: приложение развёрнуто как Spring Boot executable fat-JAR
- Вектор атаки: сетевой доступ к эндпоинту, передающему контролируемый атакующим JSON в парсер Fastjson
- SafeMode: должен быть отключён (состояние по умолчанию)
- AutoType: не требуется — эксплуатация работает при отключённом AutoType
- Classpath gadget: не требуется
Последний пункт заслуживает особого внимания. Предыдущие уязвимости Fastjson, включая обход AutoType 2022 года, требовали либо включённого AutoType, либо наличия подходящего гаджета в classpath. CVE-2026-16723 обходит оба ограничения, что существенно расширяет поверхность атаки.
Механизм эксплуатации
Согласно техническому анализу исследователя, проблема кроется в механизме разрешения типов Fastjson. Контролируемое атакующим значение @type преобразуется в поиск ресурса класса. В контексте Spring Boot fat-JAR специально сформированный путь к вложенному JAR-файлу позволяет загрузить байткод атакующего. Аннотация @JSONType в этом ресурсе воспринимается парсером как сигнал доверия, после чего класс проходит проверки типов Fastjson и загружается.
Уязвимые точки входа включают JSON.parse, JSON.parseObject(String) и JSON.parseObject(String, Class). Alibaba подчёркивает, что привязка входных данных к фиксированному классу не является достаточной защитой, если объект содержит поле типа Object или Map, куда может быть вложена вредоносная нагрузка.
Alibaba указывает, что не затронуты: обычные JAR-файлы (не fat-JAR), стандартные uber-JAR, а также развёртывания в виде WAR на Tomcat или Jetty.
Наблюдаемая активность эксплуатации
Ситуация с подтверждением эксплуатации неоднозначна. ThreatBook сообщила 22 июля о фиксации попыток эксплуатации в реальном трафике. В лабораторных условиях компания воспроизвела полное выполнение кода на Spring Boot fat-JAR с JDK 8, тогда как тест со встроенным Tomcat привёл лишь к загрузке удалённого JAR или SSRF.
Imperva зафиксировала активность, направленную против организаций в секторах финансовых услуг, здравоохранения, технологий и розничной торговли — преимущественно в США, с меньшими объёмами в Сингапуре и Канаде. По данным компании, большинство запросов генерировались средствами имитации браузеров, а инструменты на Ruby и Go составили около 30% трафика.
Однако ни один из вендоров не опубликовал количество атак, сырые запросы, доказательства успешного выполнения кода, имена жертв или подтверждённые компрометации. Отчёты фиксируют наблюдаемую активность эксплуатации, но не доказывают успешное проникновение в реальные системы.
Дополнительную неопределённость вносит позиция CISA: оценка CISA-ADP от 23 июля пометила статус эксплуатации как none, а уязвимость отсутствует в каталоге KEV. Причины расхождения с данными вендоров не объяснены.
Оценка воздействия
Fastjson — одна из наиболее распространённых JSON-библиотек в экосистеме Java, особенно популярная в китайскоязычном сегменте разработки. Уязвимость затрагивает любое приложение, соответствующее четырём условиям: версия Fastjson 1.2.68–1.2.83, упаковка как Spring Boot fat-JAR, наличие сетевого эндпоинта с парсингом JSON и отключённый SafeMode. Учитывая, что SafeMode отключён по умолчанию, а Spring Boot fat-JAR является стандартным форматом развёртывания, значительная часть приложений может оказаться уязвимой.
Особую опасность представляет тот факт, что версия 1.2.83 была рекомендованным обновлением Alibaba для устранения предыдущего обхода AutoType в 2022 году. Организации, добросовестно обновившиеся до последней версии 1.x, теперь находятся в уязвимом диапазоне.
Рекомендации по защите
На момент 25 июля патч для Fastjson 1.x не выпущен — версия 1.2.83 остаётся последним стандартным релизом в ветке 1.x. Alibaba предлагает следующие меры:
- Немедленно: включить SafeMode — добавить параметр JVM
-Dfastjson.parser.safeMode=trueпри запуске приложения - Альтернатива: использовать ограниченную сборку — заменить зависимость на
com.alibaba:fastjson:1.2.83_noneautotype - Долгосрочно: мигрировать на Fastjson2 — эта версия не подвержена уязвимости, поскольку не использует тот же механизм поиска ресурсов и доверия на основе аннотаций
Дополнительные действия для команд безопасности:
- Провести инвентаризацию прямых и транзитивных зависимостей от Fastjson во всех проектах
- Проверить затронутые системы на наличие подозрительных значений
@typeв JSON-запросах - Искать признаки компрометации: вложенные URL JAR-файлов, нехарактерные исходящие соединения, дочерние процессы Java, изменения файловой системы и веб-шеллы
- Оценить формат развёртывания — приложения, работающие как обычные JAR, uber-JAR или WAR на Tomcat/Jetty, не подвержены данной уязвимости
Учитывая оценку CVSS 9.0, отсутствие патча и зафиксированную активность эксплуатации (пусть и без подтверждённых компрометаций), включение SafeMode или переход на ограниченную сборку 1.2.83_noneautotype следует рассматривать как приоритетную задачу. Организациям, зависящим от Fastjson 1.x в продуктивных системах, стоит начать планирование миграции на Fastjson2 — Alibaba явно позиционирует ветку 1.x как завершённую, и текущая ситуация подтверждает, что рассчитывать на выход исправленной версии 1.x не следует.