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

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

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

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

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

Категории

Все категории
Loading categories
tomcat85-check — CVE-2025-55752 CVE-2025-55754 CVE-2025-48988 CVE-2025-52520 CVE-2025-53506 CVE-2025-61795 CVE-2025-66614:Tomcat 8.5 достиг EOL, финальная версия 8.5.100. Apache по пунктам заявляет, что «8.5 также затронут» для 14 CVE 2025 года, из которых 10 не находятся в NVD при проверке по 8.5.100. Офлайн-одиночный jar, читает conf/, чтобы определить, какие именно из них затрагивают вас. | Kitploit
Инструменты/GitHubGitHub/xiaoqimikko/tomcat85-check
Безопасность облачной инфраструктурыСканеры уязвимостейАнализ уязвимостейАудит конфигурацииВеб-безопасностьDevSecOps
GitHubxiaoqimikko/tomcat85-check

tomcat85-check

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
1 день назадЕщё не проверено

Описание

CVE-2025-55752 CVE-2025-55754 CVE-2025-48988 CVE-2025-52520 CVE-2025-53506 CVE-2025-61795 CVE-2025-66614:Tomcat 8.5 достиг EOL, финальная версия 8.5.100. Apache по пунктам заявляет, что «8.5 также затронут» для 14 CVE 2025 года, из которых 10 не находятся в NVD при проверке по 8.5.100. Офлайн-одиночный jar, читает conf/, чтобы определить, какие именно из них затрагивают вас.

Поделиться

tomcat85-check

Всё ещё крутите Tomcat 8.5?Этот инструмент покажет вам, какие именно CVE 2025 года вас касаются — потому что на официальных страницах, в NVD и у сканеров вы не получите полного ответа на этот вопрос.

Один jar без зависимостей, работает офлайн, без интернета и без загрузки куда-либо данных.


Какую проблему он решает

Tomcat 8.5 достиг EOL 2024-03-31, финальная версия — 8.5.100 (выпущена 2024-03-19). После этого Apache продолжает в записях CVE указывать, что «8.5 тоже затронут», но это написано там, куда меньше всего заглядывают.

На официальной странице безопасности Apache для 9.x перечислено 17 записей CVE-2025-*, из которых 14 дословно содержат:

The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.x though 8.5.100

(так в оригинале — в 8 из 14 записей through написано с ошибкой как though; нижняя граница в основном 8.5.0, но встречаются 8.5.6 / 8.5.44 / / )

8.5.60
8.5.90

Эти 14 записей в трёх местах выглядят по-разному:

Где вы обычно смотритеЧто вы увидите
Официальная страница безопасности Apache для 8.5 (security-8.html)Ноль записей за 2025 год — страница заканчивается на 2024-02-19 Fixed in Apache Tomcat 8.5.99
NVDЕсли искать 8.5.100 по cpe, из этих 14 вернутся только 4; в конфигурации cpe остальных 10 записей 8.5 вообще отсутствует
GitHub advisoryВсе 14 на месте, но first_patched_version для 8.5 везде null

Единственное место, где всё это описано полностью — оригинальные записи на CVE.org, где Apache выступает как CNA — то есть тот слой, который меньше всего кто-либо открывает. Этот инструмент берёт информацию именно оттуда и сопоставляет её с реально установленной у вас версией.

🔴 Этот инструмент описывает расхождения между источниками данных, а не поведение какого-либо продукта. «Сообщит ли ваш сканер об этих 10 записях» зависит от того, какую базу он читает и как объединяет данные — это не проверялось, поэтому здесь об этом не написано.


Вторая половина не менее важна: только 2 из 14 записей срабатывают на конфигурации по умолчанию

Если сообщать только по номеру версии, то 12 записей, требующих особой конфигурации, тоже будут помечены как «вы затронуты» — это заставит вас делать то, что не нужно.

Поэтому при указании каталога установки инструмент читает все XML из conf/ (включая conf/Catalina/<host>/), удаляет блоки комментариев и затем ищет маркеры условий срабатывания. Удаление комментариев — не опция: в официальном server.xml текстовый поиск UpgradeProtocol даёт 1 совпадение, а после удаления комментариев — 0, потому что весь фрагмент закомментирован.

Для официальной чистой установки 8.5.100 результат выглядит так:

root@kitploit:~
Затронуто по умолчанию: 2 · Конфигурация подтверждена: 0 · Требуется ручная проверка: 11 · Не применимо: 1
Из них 10 записей отсутствуют в конфигурации cpe в NVD

Если в той же конфигурации включить HTTP/2, RewriteValve и CGIServlet, «конфигурация подтверждена» становится 5.


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

root@kitploit:~
java -jar tomcat85-check.jar <каталог установки | jar | war> ...

  --all     также выводить записи, где «версия вне диапазона»
  --utf8    добавляйте при кракозябрах в китайской консоли Windows
root@kitploit:~
# Распакованный Tomcat — передайте уровень, содержащий conf/, чтобы сильно сократить ручную работу
java -jar tomcat85-check.jar /opt/tomcat

# Можно сканировать и один jar / war
java -jar tomcat85-check.jar /opt/app/lib/catalina.jar

Как определяется версия в распакованной установке

В именах jar из lib/ нет ни одного номера версии (это catalina.jar, а не catalina-8.5.100.jar). Инструменты, определяющие версию только по имени файла, в таких установках не распознают ничего — а «ничего не найдено» выглядит точно так же, как «вы в безопасности».

Этот инструмент определяет версию в таком порядке:

  1. server.number из catalina.jar!/org/apache/catalina/util/ServerInfo.properties — именно его выводит собственный version.sh от Tomcat
  2. Implementation-Version из META-INF/MANIFEST.MF
  3. Имя файла (только для таких форм, как встроенный Tomcat в Spring Boot)

Если два источника не совпадают (ServerInfo.properties можно переопределить, это часто используют для скрытия версии), выводятся оба значения, выбор за вами.


Три черты, которые инструмент не переступает

Первое: подтвердить включение можно, подтвердить отсутствие — нельзя. «Не найдено» в отчёте означает «не найдено в просмотренных мной файлах», а не «у вас не включено». Конфигурация может находиться там, куда инструмент не смотрит: WEB-INF/web.xml внутри war, внешний CATALINA_BASE, параметры запуска. Поэтому категории «не затронут» не существует — всё, что не найдено, попадает в требует ручной проверки.

Второе: даже если найдено, это не всегда означает именно то. Например, в официальном server.xml по умолчанию AprLifecycleListener уже включён, но он лишь пытается загрузить нативную библиотеку — если библиотеки нет, APR-коннектор не активируется. Поэтому это «слабый маркер»: при совпадении сообщается только «возможно», а не «подтверждено».

Третье: версии 8.5, на которую можно обновиться, не существует. first_patched_version для всех 14 записей со стороны 8.5 — null. Это не «ещё не исправили», а «для 8.5 исправлять не будут». Единственный выход — перейти на другую ветку (9.0 / 10.1 / 11.0). Этот инструмент отвечает на вопрос «чем вы затронуты» и не делает вид, что может ответить «до какой версии 8.5 обновляться».


Ещё одна вещь, из-за которой вам может показаться, что «инструмент ошибается»: у одного CVE несколько оценок

Возьмём CVE-2025-55754 — все четыре числа настоящие:

Кто присвоилЗначение
Apache (четырёхуровневая шкала ASF)low
GitHub advisorylow
CVSS v3.1 (именно его берёт NVD)9.6 critical
CVSS v4.02.1

Если смотреть только на NVD, можно решить, что это самая серьёзная запись; только на Apache — что можно игнорировать. Оба не ошибаются — Apache оценивает реальную эксплуатируемость при конфигурации по умолчанию, а CVSS считается механически по вектору, не учитывая, включена ли у вас эта функция.

Поэтому инструмент печатает все четыре числа и явно сообщает, когда две стороны расходятся в оценке.

Два набора терминов — не одно и то же; выравнивание делается только там, где это официально поддержано

Apache использует low / moderate / important / critical, GitHub — low / medium / high / critical. Основание для выравнивания —原文 с официальной security-impact.html от Tomcat:

Important / High — A vulnerability rated as Important (or High) impact is one which could result in the compromise of data or availability of the server.

→ Important и High — это два названия одного уровня, так написано самим проектом. 🔴 А вот официального заявления о соответствии moderate и medium нет, и инструмент сам их не приравнивает — Moderate от ASF описывает условия эксплуатируемости вроде «есть существенные смягчающие факторы / не влияет на типовую конфигурацию / требуется аутентификация», а medium от GitHub — это диапазон баллов CVSS; это разные вещи. В таком случае сообщается «официально эти два уровня не объявлены равными» и приводятся оба.

По такой методике из 14 записей 5 имеют существенно разные оценки (самый большой разрыв — CVE-2025-52520: Apache low / GitHub high), 2 не выравниваются, 7 совпадают.


Откуда данные и как их воспроизвести

Таблица判定 CveTable.java генерируется, ни одна строка не вписана вручную:

root@kitploit:~
python -u tools/fetch_sources.py    # загрузить три первоисточника → tools/sources.json
python -u tools/gen_table.py        # сгенерировать CveTable.java (5 утверждений; файл не записывается, если хоть одно не прошло)
ИсточникДля ответа на вопрос
CVE.org (оригинальные записи Apache как CNA)Заявил ли сам Apache, что «затронут 8.5», и каков диапазон
NVDЕсть ли запись для 8.5 в конфигурации cpe
GitHub advisoryseverity, затронутые координаты Maven, есть ли исправленная версия для 8.5

Перед публикацией/релизом дополнительно запускается проверка по независимой методике — она не читает указанный выше sources.json, а разбирает сгенерированный CveTable.java и затем ещё раз запрашивает NVD по cpe:

root@kitploit:~
python -u tools/recheck_before_publish.py

Этот шаг не для галочки: при первом же запуске он поймал настоящую ошибку. Генерирующий скрипт при определении «есть ли 8.5 в NVD» учитывал только случаи, где «нижняя граница диапазона начинается с 8.5», а в CVE-2025-24813 указано versionStartIncluding=None .. versionEndExcluding=9.0.99 — нижняя граница открыта, значит, 8.5 покрывается. Из-за этого разность посчитала на одну запись больше. Построчная проверка по cveId этого никогда бы не выявила; помогло только переключение на пользовательский подход «запросить 8.5.100 по cpe».


Сборка

root@kitploit:~
mvn package        # → target/tomcat85-check.jar
mvn test           # 59 тестов

Требуется JDK 17+. Во время выполнения ноль зависимостей, JUnit только для тестов.


License

MIT — см. LICENSE

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