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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-35616-check — Неразрушающий сканер для CVE-2026-35616 — обхода API без аутентификации в FortiClient EMS. Обнаруживает уязвимость, сравнивая HTTP-ответы с подделанными SSL-заголовками и без них, используя только стандартную библиотеку Python. | Kitploit
Инструменты/GitHubGitHub/bishopfox/cve-2026-35616-check
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование безопасности APIТестирование на ПроникновениеАутентификация
GitHubbishopfox/cve-2026-35616-check

CVE-2026-35616-check

Неразрушающий сканер для CVE-2026-35616 — обхода API без аутентификации в FortiClient EMS. Обнаруживает уязвимость, сравнивая HTTP-ответы с подделанными SSL-заголовками и без них, используя только стандартную библиотеку Python.

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

Популярное

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

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

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

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

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

Инструмент оценки уязвимости CVE-2026-35616

Безопасно определяет, уязвим ли сервер FortiClient EMS к CVE-2026-35616, не вызывая сбоев в работе. См. полный технический разбор в блоге Bishop Fox.

Описание

CVE-2026-35616 — это обход API без предварительной аутентификации в FortiClient EMS 7.4.5 и 7.4.6, который позволяет удалённым неаутентифицированным злоумышленникам обходить аутентификацию на основе сертификатов с помощью подделки HTTP-заголовков. Приложение Django доверяет управляемым пользователем HTTP-заголовкам (X-SSL-CLIENT-VERIFY, X-SSL-CLIENT-CERT) как переменным окружения WSGI от Apache mod_ssl, а конфигурация Apache никогда их не удаляет. В сочетании с проверкой цепочки сертификатов, которая выполняет только сопоставление строк Distinguished Name (без криптографической проверки подписи), злоумышленник может подделать сертификаты и получить аутентифицированный доступ к API. Fortinet подтвердила эксплуатацию данной уязвимости в реальных условиях.

Этот инструмент выполняет неразрушающее тестирование уязвимости следующим образом:

  1. Отправка базового POST-запроса на /api/v1/fabric_device_auth/fortigate/init без подделанных заголовков
  2. Отправка того же POST-запроса с X-SSL-CLIENT-VERIFY: SUCCESS, но без данных сертификата
  3. Сравнение двух ответов для определения того, достиг ли заголовок Django

При отправке заголовка verify без данных сертификата PEM активируется путь обнаружения, но аутентификация не может быть выполнена, поскольку цепочка сертификатов не предоставляется. Сервер остаётся стабильным и может продолжать обрабатывать соединения.

  • Уязвимые серверы вернут разные ответы: базовый запрос возвращает HTTP 401 ("Certificate not found in request header"), а подделанный — HTTP 500 (ошибка сервера), поскольку contains_certificate() проходит проверку, но validate_cert_chain() завершается ошибкой из-за отсутствия данных PEM.
  • Пропатченные серверы вернут одинаковые ответы HTTP 401 на оба запроса, поскольку горячий фикс добавляет в Apache директивы RequestHeader unset, которые отбрасывают подделанный заголовок до того, как он достигнет Django.
  • Серверы, не являющиеся EMS, не смогут обратиться к конечной точке, и в этом случае инструмент сообщает о результате INCONCLUSIVE.

Установка

git clone https://github.com/BishopFox/CVE-2026-35616-check
cd CVE-2026-35616-check

Внешних зависимостей нет. Сканер использует только модули стандартной библиотеки Python.

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

Проверьте сервер FortiClient EMS по адресу <TARGET>:<PORT>. Порт по умолчанию — 443/TCP.

python3 CVE-2026-35616-check.py <TARGET> [PORT]

Пример: уязвимый сервер

$ python3 CVE-2026-35616-check.py 192.168.1.1
======================================================================
FortiClient EMS CVE-2026-35616 Vulnerability Scanner
Non-Destructive Detection
======================================================================

[*] Target: 192.168.1.1:443
[*] Testing for CVE-2026-35616 (non-destructive)

[1] Sending baseline POST (no spoof headers)... HTTP 401
[2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 500

[*] Analyzing responses...
[+] Baseline: 401 — Certificate not found in request header.
[+] Spoofed:  500 — Server encountered an error, please try again later.
[!] Spoofed header changed server behavior
[!] X-SSL-CLIENT-VERIFY is reaching Django (hotfix not applied)

======================================================================
RESULT: VULNERABLE to CVE-2026-35616
Affected versions: FortiClient EMS 7.4.5 - 7.4.6
Recommendation: Apply Fortinet hotfix or upgrade to 7.4.7+
======================================================================

Пример: пропатченный сервер

$ python3 CVE-2026-35616-check.py 192.168.1.1
======================================================================
FortiClient EMS CVE-2026-35616 Vulnerability Scanner
Non-Destructive Detection
======================================================================

[*] Target: 192.168.1.1:443
[*] Testing for CVE-2026-35616 (non-destructive)

[1] Sending baseline POST (no spoof headers)... HTTP 401
[2] Sending POST with X-SSL-CLIENT-VERIFY: SUCCESS... HTTP 401

[*] Analyzing responses...
[+] Baseline: 401 — Certificate not found in request header.
[+] Spoofed:  401 — Certificate not found in request header.
[-] Responses identical (header stripped by Apache)

======================================================================
RESULT: NOT VULNERABLE (hotfix applied)
Apache is stripping X-SSL-CLIENT-VERIFY before it reaches Django
======================================================================

Предварительные условия

Инструмент может обнаружить уязвимость только при выполнении следующих условий:

  • На целевом сервере запущена FortiClient EMS 7.4.5 или 7.4.6
  • Веб-интерфейс EMS доступен
  • Конечная точка /api/v1/fabric_device_auth/fortigate/init существует и использует аутентификацию cert_chain_approved

Если какое-либо условие не выполнено, инструмент сообщит о результате INCONCLUSIVE.

Лицензия

Этот код распространяется под лицензией MIT.

Юридический отказ от ответственности

Использование этого инструмента для атак на цели без предварительного взаимного согласия незаконно. Соблюдение всех применимых местных, государственных и федеральных законов является обязанностью конечного пользователя. Разработчики не несут ответственности и не отвечают за любое неправомерное использование или ущерб, причинённый этой программой.

См. также

  • Консультация Fortinet FG-IR-26-099
  • Блог Bishop Fox: полный технический анализ
  • NVD — CVE-2026-35616
Скачать инструмент