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

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

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

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

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

Категории

Все категории
Loading categories
scc-check — Офлайн-проверщик для Spring Cloud Config CVE-2026-40982 — сообщает, есть ли вообще OSS-исправление для вашей ветки версий (3.1.x/4.1.x/4.2.x: его нет) | Kitploit
Инструменты/GitHubGitHub/xiaoqimikko/scc-check
Статический анализСканеры уязвимостейАнализ уязвимостейDevSecOpsБезопасность Цепочки Поставок
GitHubxiaoqimikko/scc-check

scc-check

Офлайн-проверщик для Spring Cloud Config CVE-2026-40982 — сообщает, есть ли вообще OSS-исправление для вашей ветки версий (3.1.x/4.1.x/4.2.x: его нет)

Репозиторий
1 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

scc-check

Инструмент для офлайн-проверки Spring Cloud Config CVE-2026-40982 — без зависимостей, один jar, без подключения к сети.

Он отвечает не на вопрос «затронут ли я», а на более неприятный вопрос:

Есть ли для моей ветки версий безопасная версия, которую можно обновить на Maven Central?

Для трёх веток 3.1.x / 4.1.x / 4.2.x ответ — нет.


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

Официальный advisory (spring.io/security/cve-2026-40982) указывает исправленные версии:

Линейка версийОфициальная исправленная версияДоступностьМаксимальная версия этой линейки в Maven CentralМожно ли обновиться
3.1.x3.1.14Enterprise Support Only3.1.10❌
4.1.x4.1.10Enterprise Support Only4.1.7❌
4.2.x4.2.7Enterprise Support Only4.2.4❌
4.3.x4.3.3OSS4.3.4✅
5.0.x5.0.3OSS5.0.4✅

Те три исправленные версии отсутствуют в публичных репозиториях. Это может проверить любой:

curl -sI https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-config-server/4.2.7/
# HTTP/1.1 404 Not Found

И автоматизированные инструменты вам об этом не скажут — в структурированных данных GitHub advisory у всех трёх этих линий first_patched_version равен null:

{"range": "<= 3.1.13",          "first_patched_version": null}
{"range": ">= 4.1.0, <= 4.1.9", "first_patched_version": null}
{"range": ">= 4.2.0, <= 4.2.6", "first_patched_version": null}
{"range": ">= 4.3.0, <= 4.3.2", "first_patched_version": "4.3.3"}
{"range": ">= 5.0.0, <= 5.0.2", "first_patched_version": "5.0.3"}

Dependabot / OSV используют именно эти данные. Без цели обновления невозможно дать рекомендацию по обновлению.


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

java -jar scc-check.jar <目录或 jar/war 路径>

# 中文乱码时(Windows 控制台代码页与 Java 判断常常对不上):
java -jar scc-check.jar target/ --utf8

Требуется Java 17+. Ноль зависимостей во время выполнения, можно сразу поместить в офлайн-среду.

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

Где он ищет

  • Имена файлов .jar / .war
  • Встроенные зависимости Spring Boot fat jar и war (BOOT-INF/lib/, WEB-INF/lib/)
  • Maven-метаданные внутри jar (META-INF/maven/.../pom.properties) — распознаёт, даже если jar переименован
  • pom.xml

Три вещи, которые он намеренно не делает

1. Не считает клиент затронутым. Данный CVE затрагивает только серверный spring-cloud-config-server. Проекты, подключившие spring-cloud-starter-config (клиент), не затронуты — инструмент прямо об этом сообщит, а не заставит вас напрасно нервничать.

2. Не выносит вердикт по 4.0.x. Ни один из диапазонов официального advisory не покрывает 4.0.x (4.0.0 > 3.1.13, не попадает в диапазон без нижней границы). Инструмент лишь сообщает «вне официального охвата», не помечает как CRITICAL — заполнение таблицы вердиктов догадками приводит к ошибочным решениям.

3. При невозможности прочитать версию прямо говорит «невозможно определить», никогда не считает безопасным. Spring Cloud управляет версиями через release train, и в pom.xml часто вообще нет <version>. В таком случае инструмент посоветует просканировать артефакты сборки, а не сделает вид, что проблем не найдено. Аналогично, зависимости со scope test / provided не передаются потребителям и не считаются поверхностью атаки; зависимости, обёрнутые в XML-комментарии, отбрасываются.


Таблица вердиктов генерируется, а не переписывается вручную

tools/gen_rules.py компилирует RuleTable.java из двух первичных источников данных:

  • GitHub advisory GHSA-6g23-24mc-hx6x → затронутые диапазоны + официальные исправленные версии
  • maven-metadata.xml с repo1.maven.org → версии, фактически существующие в публичном репозитории

И содержит четыре утверждения: число диапазонов ≥5, число first_patched=null ≥3, число веток версий ≥5, число ENTERPRISE_ONLY ≥3. Если хоть одно не выполняется — немедленно прерывается, файл не генерируется — иначе при сбое разбора получится пустая таблица, а модульные тесты против пустой таблицы всё равно пройдут зелёными.

python tools/gen_rules.py     # 重新生成判定表
mvn test                      # 31 个测试

Отказ от ответственности

Этот инструмент выполняет только сравнение версий и не проверяет, действительно ли ваш Config Server доступен из интернета, есть ли на нём WAF и смягчены ли риски другими способами. Результат проверки — это отправная точка для расследования, а не заключение о безопасности. Ориентируйтесь на официальный advisory.

License

MIT


Нужно более глубокое расследование?

Этот инструмент отвечает на вопрос «попал ли я». На следующие вопросы он ответить не может, но с ними можно обратиться ко мне:

  • зависимости прошли через shade / relocate, или артефакты сборки вообще недоступны
  • нужно определить, сработает ли «эта CVE в нашей цепочке вызовов», а не просто совпадение версии
  • нужна кастомизация под ваш процесс сборки или внутреннюю сетевую среду, интеграция в существующий конвейер
  • перед вами аналогичная проблема другого компонента, а готового инструмента ещё нет

📮 [email protected] — опишите ситуацию, и в течение 24 часов я пришлю вам письменный ответ на одну страницу: можно ли это сделать, в чём сложность, сколько примерно времени займёт. Этот шаг бесплатный, и от вас не требуется никаких обязательств.

Коды выхода

КодЗначение
0Сканирование завершено, и каждый файл действительно был прочитан, нет находок, требующих ваших действий
4Есть файлы, которые не удалось прочитать — не zip, содержимое обрезано или ошибка чтения

🔴 4 добавлен 2026-09-09, и причину его добавления стоит объяснить ясно. До этого непрочитанные файлы оставляли в выводе лишь одну строку предупреждения, а код выхода оставался 0 — след остаётся для людей, а CI и скрипты смотрят на код выхода, поэтому «я не смог это прочитать» в автоматизации означало «пройдено». Повреждённый, зашифрованный или недокачанный jar тихо превращался в фразу «проблем не обнаружено».

«Я не могу это прочитать» и «вы в безопасности» должны быть двумя разными фразами.

⚠️ Легитимный пустой jar не считается непрочитанным (запись EOCD размером 22 байта — это настоящий пустой zip) и не вызывает 4 — когда ложных тревог много, настоящие тревоги никто не смотрит.

Значения остальных кодов выхода см. в описанных выше уровнях вердикта и разделах использования.

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