Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1310 CNY

100%

CVE-2023-27997 PoC — Fortinet FortiOS 缓冲区错误漏洞

Source
Associated Vulnerability
Title:Fortinet FortiOS 缓冲区错误漏洞 (CVE-2023-27997)
Description:A heap-based buffer overflow vulnerability [CWE-122] in FortiOS version 7.2.4 and below, version 7.0.11 and below, version 6.4.12 and below, version 6.0.16 and below and FortiProxy version 7.2.3 and below, version 7.0.9 and below, version 2.0.12 and below, version 1.2 all versions, version 1.1 all versions SSL-VPN may allow a remote attacker to execute arbitrary code or commands via specifically crafted requests.
Description
FortiGate SSL-VPN CVE-2023-27997 Exploit PoC Script with ROP Chain
Readme
<!-- ================================================================= -->
<!--                          fgt-cve-2023-27997                       -->
<!-- ================================================================= -->

# fgt-cve-2023-27997-exploit

> FortiGate SSL‑VPN **CVE‑2023‑27997** Exploit PoC Script with ROP Chain

[![CVE Score](https://img.shields.io/badge/CVE--2023--27997-9.2%2FCRITICAL-red)](https://nvd.nist.gov/vuln/detail/CVE-2023-27997)
[![Python](https://img.shields.io/badge/python-3.7%2B-yellow)](https://www.python.org/downloads/)

---

## İçindekiler <!-- omit in toc -->

- [Açıklama](#açıklama)
- [Etkilenen Sürümler](#etkilenen-sürümler)
- [Kurulum](#kurulum)
- [Kullanım](#kullanım)
- [Örnek Çıktı](#örnek-çıktı)
- [Teknik Detaylar](#teknik-detaylar)
- [Uyarılar](#uyarılar)
- [Kaynaklar](#kaynaklar)

---

## Açıklama

`fgt-cve-2023-27997-exploit.py`, Fortinet FortiGate cihazlarında keşfedilen kritik güvenlik açığı **CVE‑2023‑27997** için yazılmış bir **Proof‑of‑Concept (PoC)** exploit scriptidir.  
Zafiyet, FortiOS SSL‑VPN arayüzünde kimlik doğrulama gerektirmeden **uzaktan kod çalıştırılmasına (RCE)** imkan veren **heap tabanlı buffer overflow** hatasından kaynaklanır.

Script çalışma adımları:

1. Hedef cihazdan **salt** değerini elde eder.  
2. Özel bir **ROP (Return‑Oriented Programming) zinciri** üretir.  
3. `/remote/hostcheck_validate` endpoint'ine manipüle edilmiş **GET** isteği göndererek **bellek taşmasını** tetikler.  
4. Taşma sonrasında hazırlanan ROP zinciri işletilerek uzaktan komut çalıştırılır.

> **Dikkat:** Script yalnızca _yetkilendirilmiş test veya laboratuvar_ ortamlarında kullanılmalıdır.

---

## Etkilenen Sürümler

| Ürün | Sürümler |
|------|----------|
| FortiOS | 7.2.0 – 7.2.5<br>7.0.0 – 7.0.11<br>6.4.0 – 6.4.12<br>6.2.0 – 6.2.14<br>6.0.0 – 6.0.16 |
| FortiProxy | İlgili sürümler |

---

## Kurulum

1. Python 3.7+ ortamı hazırlayın.  
2. Gerekli bağımlılıkları kurun:

```bash
pip3 install -r requirements.txt
```

> **requirements.txt** içeriği:
> ```text
> requests
> urllib3
> ```

---

## Kullanım

```bash
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
```

Örnek:

```bash
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
```

| Argüman | Açıklama |
|---------|----------|
| `<TARGET_IP>` | Hedef FortiGate IP adresi |
| `<TARGET_PORT>` | SSL‑VPN portu (default: 443 veya 10443) |

---

## Örnek Çıktı

```text
[*] FortiOS 7.0.5 CVE-2023-27997 ROP Chain Ping Exploit Başlatılıyor...
[+] Salt alındı: 749a2b77
[+] Enc parametresi oluşturuldu (1024 karakter)
[!] 500 Internal Server Error - Bellek taşması veya crash olabilir!
```

---

## Teknik Detaylar

<details>
<summary>Görmek için tıklayın</summary>

### Zafiyet Akışı

```text
/remote/info   --> salt değeri alınır
/remote/hostcheck_validate?enc=<payload> --> buffer overflow tetiklenir
```

- `enc` parametresi, `salt` + `seed` birleşiminden üretilen **XOR keystream** ile şifrelenir.  
- **Uzunluk** kontrolündeki hata taşmayı mümkün kılar.  
- Taşma sonrası **ROP Chain** devreye girer.

### ROP Zinciri

| Adım | Gadget | Açıklama |
|------|--------|----------|
| 1 | `pop rdi ; ret` | `RDI`'ye komut adresi yüklenir |
| 2 | `system@plt` | Komut işletilir |
| – | `0xdeadbeefdeadbeef` | Placeholder; gerçek adres lab ortamında belirlenmelidir |

### Heap Spray

Bu PoC, kontrollü test ortamında **heap grooming** gerektirmeden çalışacak şekilde tasarlanmıştır.

</details>

---

## Uyarılar

- Script yalnızca _yetkilendirilmiş_ ortamlarda çalıştırılmalıdır.  
- İzinsiz kullanım **yasalara aykırıdır** ve hedef cihaz **çökebilir**.  
- FortiOS 7.0.5 sürümleri **TLS 1.0** kullanır; script içinde uygun TLS ayarı yapılmıştır.

---

## Kaynaklar

- Lexfo Security Blog – *XORtigate: CVE‑2023‑27997*  
- Bishop Fox – *Building an Exploit for CVE‑2023‑27997*  
- Fortinet PSIRT Advisory **FG‑IR‑23‑097**

---
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →