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

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

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

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

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

Категории

Все категории
Loading categories
spring-cvss-check — Сканирует Java-артефакты и исходный код на предмет CVE для Spring/Tomcat, сравнивает оценки CVSS от вендора и NVD, проверяет условия эксплуатации и определяет, существуют ли исправленные версии в Maven Central. | Kitploit
Инструменты/GitHubGitHub/xiaoqimikko/spring-cvss-check
Сканеры уязвимостейАнализ уязвимостейАудит конфигурацииDevSecOpsБезопасность Цепочки Поставок
GitHubxiaoqimikko/spring-cvss-check

spring-cvss-check

Сканирует Java-артефакты и исходный код на предмет CVE для Spring/Tomcat, сравнивает оценки CVSS от вендора и NVD, проверяет условия эксплуатации и определяет, существуют ли исправленные версии в Maven Central.

Репозиторий
19 ч 59 мин назадЕщё не проверено

Популярное

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

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

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

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

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

spring-cvss-check

Покрывает 15 официальных бюллетеней безопасности Spring / Tomcat (2026-08-20 семь · 2026-06-08 пять · 2025-09-15 одна · Tomcat 2026-08-25 две).

Из них 8: сканеры, подключённые к NVD, сообщают CRITICAL 9.1~9.8, тогда как официальная оценка вендора — LOW / MEDIUM. Остальные 7 полностью совпадают в обеих оценках — разница только одна: подал ли сам вендор оценку CVSS для записи CVE.

Этот инструмент отвечает на четыре вопроса:

  1. Какие из этих 15 записей затрагивают вашу версию
  2. Какую оценку на самом деле дал вендор (и кто выставил ту оценку, что в NVD)
  3. Действительно ли вы удовлетворяете условиям срабатывания (анализ исходников и конфигурации, а не только сравнение версий)
  4. Существует ли версия, на которую вендор велит обновиться, в Maven Central

Таблица сравнения

CVEКомпонентОфициально у вендораNVDКто выставил оценку в NVD
CVE-2026-59313Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-47890Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-59283Spring FrameworkMEDIUM9.1 CRITICALCISA-ADP
CVE-2026-47891Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47884Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47892Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-65637Apache TomcatModerate9.8 CRITICALCISA-ADP
CVE-2026-65905Apache TomcatLow9.8 CRITICALCISA-ADP
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALСамооценка вендора ✅ совпадает

Единственная запись, где обе оценки совпадают, — это именно та, где вендор сам подал CVSS в NVD.

Причина не в том, что кто-то что-то скрывает: когда вендор не подаёт оценку, CISA-ADP автоматически выставляет её по наихудшему сценарию, а большинство SCA-инструментов берут именно значение из NVD. Это не баг, а две разные методики оценки — но ваш процесс реагирования построен на 9.8.

И второе: версия, на которую велит обновиться вендор, может быть просто недоступна для скачивания

Проверено на практике (с положительным контролем, перезапускается при каждой генерации таблицы правил):

root@kitploit:~
spring-web           6.2.19 = 200   ← предыдущая версия есть в Central
spring-web           6.2.20 = 404   ← та, на которую велит обновиться вендор, отсутствует
spring-security-core 6.5.11 = 200
spring-security-core 6.5.12 = 404

В таблице исправлений вендора эти версии помечены как Enterprise Support Only — только для клиентов с платной коммерческой поддержкой. Так что если вы действительно затронуты, ваш выбор: обновление через мажорную версию или покупка коммерческой поддержки.

Использование

root@kitploit:~
java -jar spring-cvss-check.jar <jar|war|каталог>... [--src <каталог исходников>]
root@kitploit:~
# Самый частый случай: сканируем артефакты сборки для определения версии, исходники — для условий срабатывания
java -jar spring-cvss-check.jar target/ --src src/main

# Можно и один fat jar / war
java -jar spring-cvss-check.jar app.war

Требуется JDK 17+. Ноль зависимостей в рантайме, без обращения к сети.

Коды выхода:0 версия не затронута · 2 версия затронута, но условия срабатывания не найдены · 3 условия срабатывания также выполнены.

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

root@kitploit:~
== Найденные версии ==
  Spring Framework   6.2.19         .../spring-core-6.2.19.jar
  Spring Security    6.5.11         .../spring-security-core-6.5.11.jar
  Apache Tomcat      9.0.37         .../tomcat-embed-core-9.0.37.jar

== Версия затронута 8 записями ==

-- CVE-2026-47884  Spring Framework Improper Path Limitation in XsltView
   Продукт    Spring Framework  Затронуто 6.2.0 - 6.2.19
   [Разница]  Официально **MEDIUM**   <->   NVD **CRITICAL 9.8**
              Оценку в NVD выставил не вендор, а CISA-ADP.
   Условия    Только при использовании XsltView, наличии маппинга "/**", идущего через рендеринг представлений, и если имя представления не задано явно
   [Найдено]  В вашем коде/конфигурации обнаружено:
              src/main/java/demo/ReportView.java  <-  XsltView(строка 2)
   [Не обновиться]  Вендор велит обновиться до 6.2.20 —— **этой версии нет в Maven Central (404)**, вендор пометил её как Enterprise Support Only

== Итог ==
   Ваш сканер может сообщить о 7 из этих 8 записей как о CRITICAL;
   а **официальная оценка вендора**: 3 записи LOW / 4 MEDIUM / 1 CRITICAL.
   Из этих 8 записей для 6 условия срабатывания в ваших исходниках не найдены, для 2 — найдены.
   [!] Для 7 из них исправляющей версии от вендора **в Maven Central вообще не существует**

Обратная сторона — почему остальные 7 записей не расходятся

По таблице выше легко решить, что «NVD всегда выставляет оценки как попало». Это не так. В том же наборе данных есть ещё 7 записей, где оценка вендора и оценка NVD полностью совпадают:

CVEКомпонентОфициально у вендораNVDКто выставил оценку в NVD
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALСамооценка вендора
CVE-2026-41843Spring FrameworkMEDIUM5.9 MEDIUMСамооценка вендора
CVE-2026-41844Spring FrameworkMEDIUM4.2 MEDIUMСамооценка вендора
CVE-2026-41846Spring FrameworkMEDIUM5.9 MEDIUMСамооценка вендора
CVE-2026-41853Spring FrameworkMEDIUM5.3 MEDIUMСамооценка вендора
CVE-2026-41848Spring FrameworkLOW3.7 LOWСамооценка вендора
CVE-2025-41249Spring FrameworkHIGH7.5 HIGHСамооценка вендора

Контрпримеров нет ни в одном из направлений — это единственный причинно-следственный вывод, на который осмеливается этот инструмент:

  • 7 записей с совпадающими оценками → источник оценки во всех случаях — [email protected] (подано самим вендором)
  • 8 записей с расходящимися оценками → источник оценки во всех случаях — CISA-ADP (вендор не подавал, оценку автоматически выставила третья сторона по наихудшему сценарию)

Скрипт генерации следит за обоими направлениями двумя отдельными утверждениями (ASSERT4 / ASSERT7); при появлении любого контрпримера отказывается выдавать таблицу.

🔑 Зачем проверять оба направления: утверждение «все совпадающие — самооценка вендора» не исключает, что некоторые расходящиеся тоже самооценка вендора. Если бы такая запись реально появилась, у причинно-следственной связи был бы контрпример, а при проверке лишь одного направления таблица всё равно бы сгенерировалась и осталась полностью «зелёной». Одностороннее утверждение не доказывает причинно-следственную связь.


Методика — пожалуйста, дочитайте до конца, прежде чем делать выводы

  • «Не затронуто» не равно «безопасно». Условия срабатывания могут находиться в сторонних библиотеках, от которых вы зависите, задаваться переменными окружения или конфигурационным центром, а возможно, вы просто не передали каталог исходников. В отчёте всегда говорится «не найдено в ваших исходниках», а не «вы не затронуты».
  • Покрываются только перечисленные выше четыре партии, всего 15 записей — это не полноценный сканер уязвимостей и не замена SCA.
  • В покрытие входит линия Spring Framework 5.3 (OSS-поддержка завершена 2024-08-31, финальная версия 5.3.39). Запуск на spring-core-5.3.39.jar затронет 11 записей, и ни одной исправляющей версии от вендора для этих 11 записей нет в публичном Maven Central (5.3.45 / 5.3.49 / 5.3.50 — все помечены Enterprise Support Only).
  • Только сопоставление текста, без AST. Это осознанный компромисс: критический путь обязан быть читаемым и проверяемым вручную — ошибку в непонятном решении никто не заметит.
  • Расхождение оценок — объективное наблюдение, это не «вендор что-то скрывает» и не «NVD сообщает наугад».

Откуда данные / как проверить самостоятельно

Таблица правил генерируется скриптом tools/gen_rules.py из четырёх первоисточников, без ручного копирования:

ИсточникЧто берём
Aspring.io/security/<cve>Официальная оценка / затронутый диапазон / исправляющая версия (включая пометки OSS ⟷ Enterprise)
Btomcat.apache.org/security-{9,10,11}.htmlТо же
CNVD REST APIОценка NVD и источник оценки
Drepo1.maven.org(HEAD)Есть ли вообще в Central версия, на которую велит обновиться вендор

Повторный запуск — это повторная проверка:

root@kitploit:~
python tools/gen_rules.py

В скрипте шесть утверждений; при провале любого из них таблица не выдаётся, три из них напрямую следят за утверждениями этого инструмента:

  • ASSERT2 число записей с расхождением вендор⟷NVD — если обнулится, значит, утверждение устарело; немедленная остановка
  • ASSERT3 проверка Central с положительным контролем — если контроль не проходит, вся партия 404 аннулируется
  • ASSERT4 у совпадающей записи источник оценки обязан быть самооценкой вендора — это единственное доказательство «причины»

License

Apache-2.0

Скачать инструмент