Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
fastjson-check — Автономный CLI-сканер без зависимостей, который находит fastjson внутри JAR-файлов и fat-JAR-файлов Spring Boot, отмечает подверженность CVE-2026-16723 и обнаруживает затенённые зависимости для CI-гейтинга. | Kitploit
Инструменты/GitHubGitHub/xiaoqimikko/fastjson-check
Сканеры уязвимостейАнализ уязвимостейDevSecOpsБезопасность Цепочки Поставок
GitHubxiaoqimikko/fastjson-check

fastjson-check

Автономный CLI-сканер без зависимостей, который находит fastjson внутри JAR-файлов и fat-JAR-файлов Spring Boot, отмечает подверженность CVE-2026-16723 и обнаруживает затенённые зависимости для CI-гейтинга.

Репозиторий
7 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

fastjson-check

Release Downloads License Java

Одна команда — и вы точно узнаете, есть ли в вашем Java-приложении fastjson, где он скрывается и затронут ли он CVE-2026-16723.

Без зависимостей · полностью офлайн · один jar на 23 КБ · поддержка Java 8+

English | Скачать


Зачем это нужно

21 июля 2026 года официальный проект fastjson опубликовал CVE-2026-16723 (CVSS 9.0, удалённое выполнение кода):

  • Затрагивает fastjson 1.2.68 ~ 1.2.83
  • Эксплуатируется при конфигурации по умолчанию — не нужно включать AutoType, не нужен gadget в classpath, не нужна аутентификация
  • В течение нескольких дней после публикации появились эксплойты в дикой природе, в основном нацеленные на развёртывания Spring Boot fat-JAR

⚠️ Официальный патч 1.2.84 уже выпущен, но почти никто об этом не знает

Множество бюллетеней по безопасности (включая ряд англоязычных ИБ-изданий) до сих пор утверждают, что «ветка 1.x снята с поддержки (EOL), патча не будет никогда, остаётся только миграция на fastjson2». С 2026-07-29 это утверждение не соответствует действительности. Можете проверить сами:

ДоказательствоСсылка
В центральном репозитории Maven есть com.alibaba:fastjson:1.2.84, jar загружен 2026-07-29repo1
GitHub release 1.2.84, опубликован 2026-07-29T08:24:51Zrelease
Ключевой коммит fix: strengthen autoType type name validation and whitelist verification2026-07-29T07:02:55Z

1.2.83 был выпущен в мае 2022 года, после чего ветка 1.x четыре года не получала коммитов — 1.2.84 выпущен специально как исключение ради этой уязвимости.

В заголовке его release не указано исправление безопасности: в заголовке 1.2.83 написано «(исправление безопасности)», а в 1.2.84 — только «Выпуск версии 1.2.84». Но в тексте это указано — есть полный раздел Security Fixes, где по пунктам перечислены четыре усиления AutoType, и так было с самого дня выпуска (2026-07-29) (проверяется по архиву Wayback 20260729094935).

Что касается того, почему после выпуска патча большинство бюллетеней и сканеров так и не обновились, я не выяснил, и здесь гадать не буду.

📌 Исправление от 2026-08-14: здесь ранее было написано «в тексте ни слова о безопасности, поэтому обновления не последовало». Первая половина по результатам проверки текста release и архивной копии Wayback за тот день оказалась неверной (не был помечен только заголовок), вторая половина из-за этого тоже лишилась основания и удалена.

👉 Практическое следствие для пользователей 1.x: обновление до 1.2.84 — самое дешёвое решение (минорная версия той же ветки, обычно не требует изменения кода), и не нужно принудительно сразу делать крупную миграцию на fastjson2. Инструмент даёт рекомендации именно исходя из этого.

⚠️ Условие — JDK 8 и выше (проверено 2026-10-14): все 274 класса в 1.2.84 — байт-код Java 8 (major 52), а в 1.2.83 — Java 5 (major 49). На JDK 7 (Zulu 7u352) javac выдаёт лишь предупреждение и код возврата 0, а во время выполнения сразу выбрасывается UnsupportedClassVersionError: com/alibaba/fastjson/JSON : Unsupported major.minor version 52.0. Кроме того: константа JSON.VERSION в 1.2.84 по-прежнему равна "1.2.83", поэтому определять по ней версию нельзя — ошибётесь; этот инструмент читает pom.properties и не подвержен этой проблеме.

А самое неприятное вот что:

fastjson обычно является транзитивной зависимостью — его никто не устанавливает намеренно, он приходит вместе с другими библиотеками. Многие команды вообще не знают, что используют его.

mvn dependency:tree может перечислить зависимости, но бессилен в двух случаях:

  1. У вас на руках только собранный fat-JAR, без исходников и окружения сборки (самый частый сценарий при аварийной диагностике в проде)
  2. fastjson зашэйден внутрь jar какого-то SDK, и в дереве зависимостей его вообще не видно

Этот инструмент написан именно для этих двух случаев.

Быстрый старт

Скачайте fastjson-check.jar из Releases, затем:

# 扫一个 jar(Spring Boot fat-JAR 会自动逐层展开)
java -jar fastjson-check.jar ./myapp.jar

# 扫一整个目录(递归查找所有 jar/war)
java -jar fastjson-check.jar /opt/apps

# 输出 JSON,接入流水线
java -jar fastjson-check.jar /opt/apps --json

Не требует установки, не требует учётной записи, не требует подключения к сети, не загружает никаких данных.

Запуск как Maven-плагин (начиная с 0.3.0)

Один и тот же артефакт является одновременно CLI и Maven-плагином. При таком использовании не нужно сначала скачивать jar:

# 在你的项目目录下直接跑,扫的是 Maven 解析后的依赖
mvn io.github.xiaoqimikko:fastjson-check:0.3.1:check

Или привязать к жизненному циклу сборки (фаза verify):

<plugin>
  <groupId>io.github.xiaoqimikko</groupId>
  <artifactId>fastjson-check</artifactId>
  <version>0.3.1</version>
  <executions>
    <execution>
      <goals><goal>check</goal></goals>
    </execution>
  </executions>
</plugin>

Почему режим плагина точнее, чем сканирование pom.xml через CLI

Когда CLI сканирует pom.xml, он читает текст, а в реальных проектах версия fastjson часто отсутствует в этом тексте:

  • Записана как свойство: <version>${fastjson.version}</version>
  • Унаследована от <parent>, в вашем pom этой строки нет
  • Самый частый случай: она пришла как транзитивная зависимость от другой библиотеки, в вашем pom fastjson вообще не упоминается

Плагин получает набор зависимостей Maven после разрешения, каждая зависимость несёт реальный путь к jar в локальном репозитории. Таким образом, используется именно тот путь, в котором этот инструмент наиболее силён: сканирование com/alibaba/fastjson(2)/JSON.class в настоящем jar, а не доверие к тому, что написано в pom.

⚠️ Но граница распознавания от этого не изменилась: ключом определения по-прежнему остаётся этот путь к классу, поэтому зависимости, подвергшиеся relocate / переупаковке с изменением имени пакета, по-прежнему не распознаются (см. ниже «Чем это не является»). Плагин решает вопрос «где записана версия», а не «имя пакета изменено».

Параметры

ПараметрПо умолчаниюОписание
-Dfastjson-check.failOnFoundfalseПрерывать сборку при обнаружении CRITICAL / HIGH
-Dfastjson-check.pathне заданНе сканировать дерево зависимостей, а сканировать этот путь (каталог / jar / war / fat-jar)
-Dfastjson-check.skipfalseПропустить выполнение

🔴 По умолчанию сборка не завершается ошибкой, и это сделано намеренно, семантика отличается от кодов выхода CLI: командную строку вводите вы сами, и код выхода 1 — именно то, что вам нужно; а плагин висит на конвейере, инструмент самопроверки не должен окрашивать сборку в красный, когда вы к этому не готовы. Чтобы использовать как шлюз CI, явно добавьте -Dfastjson-check.failOnFound=true.

💡 Если на Windows отчёт выводится в виде кракозябр, переключите консоль обратно на GBK (chcp 936) — кодировка вывода в режиме плагина определяется Maven, переключатели CLI --utf8 / --gbk здесь недоступны.

Вывод выглядит так

fastjson-check 0.1.0  —— fastjson 应急排查(离线,不外传任何数据)

扫描目标:myapp.jar
已展开归档:3 个

发现 2 处 fastjson:

[CRITICAL] fastjson 1.2.83
  位置  :myapp.jar!/BOOT-INF/lib/fastjson-1.2.83.jar
  版本来源:pom.properties
  场景  :Spring Boot fat-JAR  ← CVE-2026-16723 的主要在野利用场景
  结论  :命中 CVE-2026-16723(CVSS 9.0 远程代码执行),默认配置即可利用
  处置  :1.x 已停止维护,不会有修复版本。应急处置二选一:①(推荐)迁移至
            fastjson2 2.0.63 或更高版本;② 无法立即迁移时,先启用 SafeMode
            彻底关闭 AutoType 以缓解,但这不是长期方案。
Скачать инструмент