
Независимый от зависимостей Python-верификатор, обнаруживающий CVE-2026-24733 — обход security-constraint в Apache Tomcat через HTTP/0.9 HEAD, с выводом в JSON и кодами выхода для CI/CD.
HEAD-запрос в стиле HTTP/0.9 при определённых конфигурациях security-constraint.Лёгкий, не требующий зависимостей верификатор безопасности на Python для
CVE-2026-24733 — обхода security-constraint в Apache Tomcat через
HEAD-запрос в стиле HTTP/0.9.
Проект предназначен для:
Только авторизованное тестирование. Сканируйте только те системы, которыми вы владеете или на тестирование которых у вас есть явное разрешение.
Apache Tomcat некорректно обрабатывал HEAD-запрос в стиле HTTP/0.9 при
определённых конфигурациях security-constraint.
Соответствующее условие — это конфигурация, в которой:
GET к ресурсу ограниченHEAD разрешёнHEAD-запрос в стиле HTTP/0.9В уязвимых версиях Tomcat это могло приводить к обходу security-constraint.
Это в первую очередь поведенческая уязвимость, зависящая от конфигурации. Поэтому обнаружение только уязвимой версии Tomcat не должно автоматически считаться доказательством эксплуатации.
Согласно рекомендациям по безопасности Apache Tomcat:
| Ветка | Исправленная версия |
|---|---|
| Tomcat 9 | 9.0.113 |
| Tomcat 10.1 | 10.1.50 |
| Tomcat 11 | 11.0.15 |
Уязвимыми являются соответствующие более ранние версии в этих поддерживаемых ветках.
Перед принятием решений об устранении всегда консультируйтесь с официальным рекомендацией Apache.
Python 3.9+.
Сторонние Python-пакеты не требуются.
Верификатор использует только стандартную библиотеку Python.
Базовый HTTP:
python3 cve_2026_24733.py \
http://127.0.0.1:8080/protected
HTTPS:
python3 cve_2026_24733.py \
https://127.0.0.1:8443/protected
Для авторизованной лаборатории с самоподписанным сертификатом:
python3 cve_2026_24733.py \
--insecure \
https://127.0.0.1:8443/protected
Вывод JSON Для автоматизации и конвейеров SIEM/CI:
python3 cve_2026_24733.py \
--json \
https://127.0.0.1:8443/protected
Пример:
{
"cve": "CVE-2026-24733",
"verdict": "INCONCLUSIVE",
"confidence": "medium",
"version": "10.1.49",
"version_assessment": "affected-range"
}
Коды выхода Код Значение 0 Не уязвим / уязвимость не подтверждена 1 Потенциально уязвим 2 Неопределённый результат или ошибка сканера
Это делает инструмент пригодным для CI/CD:
python3 cve_2026_24733.py \
--json \
https://target.example/protected
if [ $? -eq 1 ]; then
echo "Potential CVE-2026-24733 exposure"
exit 1
fi
Методология обнаружения Верификатор выполняет два ограниченных запроса к явно указанному оператором пути:
Обычный HTTP/1.1 GET Отправляется обычный запрос для установления нормального поведения доступа.
HEAD в стиле HTTP/0.9 Верификатор отправляет намеренно HTTP/0.9-подобный запрос:
HEAD /protected
Запрос намеренно не содержит версии HTTP или заголовков HTTP/1.x.
Два наблюдения сравниваются.
Особенно интересный результат:
GET /protected -> 401/403 HTTP/0.9 HEAD -> ответ получен
В сочетании с уязвимой версией Tomcat это сообщается как:
POTENTIALLY VULNERABLE
Инструмент намеренно использует слово potentially, поскольку сетевые компоненты, обратные прокси, маршрутизация приложений и политики безопасности на уровне отдельных эндпоинтов могут влиять на наблюдение.
Ложные срабатывания Этот верификатор намеренно консервативен.
Результат POTENTIALLY_VULNERABLE следует исследовать, а не слепо считать подтверждённой эксплуатацией.
Возможные причины включают:
Обратные прокси
Поведение WAF
Балансировщики нагрузки
Разные бэкенд-узлы
Пользовательские сервлет-фильтры
Авторизация на уровне приложения
Конфигурация на уровне эндпоинта
HTTP-серверы, отличные от Tomcat, перед Tomcat
Для устранения с высокой уверенностью проверьте версию Tomcat и соответствующие security-constraints.
Безопасность по дизайну Верификатор намеренно не выполняет:
сканирование целевой системы
перечисление каталогов
брутфорс URL
обход аутентификации
извлечение защищённых данных приложения
выполнение команд
загрузку файлов
изменение состояния сервера
попытки повышения привилегий
превращение проблемы в другую уязвимость
Оператор явно указывает тестируемый эндпоинт.
Сбор ответов ограничен, чтобы предотвратить излишнюю загрузку больших ответов.
Рекомендуемый защитный рабочий процесс Если инструмент сообщает:
POTENTIALLY VULNERABLE
Определите фактическую версию бэкенда Tomcat.
Проверьте, использует ли эндпоинт security-constraint с ограничением GET / разрешением HEAD.
Проверьте маршрутизацию обратного прокси/WAF.
Обновите Tomcat до соответствующей исправленной версии.
Повторно протестируйте тот же эндпоинт.
Проверьте логи на неожиданный трафик HTTP/0.9.
При необходимости временно заблокируйте некорректные HTTP/0.9-запросы на обратном прокси, пока выполняется устранение.
Ответственное раскрытие Если тестирование выявило ранее неизвестную проблему безопасности:
Не раскрывайте публично конфиденциальную информацию о цели.
Сохраните соответствующие доказательства.
Уведомите затронутую организацию.
Следуйте процессу сообщения о безопасности вендора.
Ответственно согласовывайте сроки раскрытия.
Ссылки Рекомендации по безопасности Apache Tomcat:
CVE:
NVD:
Лицензия MIT License.
Используйте ответственно и только против систем, на которые у вас есть авторизация.