Share
## https://sploitus.com/exploit?id=8A693FFE-F733-5DB9-83AA-11BB3F109321
#CVE-2022-31630 - Proof of Concept Exploit untuk PHP 7.4.33

Peringatan: Kode ini dibuat hanya untuk tujuan edukasi dan pengujian di lingkungan laboratorium yang terisolasi. Penggunaan di sistem lain tanpa izin adalah ilegal dan tidak bertanggung jawab.

---

📋 Deskripsi

CVE-2022-31630 adalah kerentanan Out-of-Bounds (OOB) Read pada ekstensi GD PHP, khususnya dalam fungsi imageloadfont(). Kerentanan ini memungkinkan penyerang yang dapat mengontrol file font yang dimuat oleh aplikasi PHP untuk membaca data di luar batas buffer yang dialokasikan, yang dapat menyebabkan:

· Denial of Service (crash)
· Information Disclosure (membocorkan isi memori sensitif)

Kerentanan ini memengaruhi PHP versi:

· 7.4.x sebelum 7.4.33
· 8.0.x sebelum 8.0.25
· 8.1.x sebelum 8.1.12

PHP 7.4.33 adalah versi pertama yang menerima patch untuk CVE ini. Oleh karena itu, kode exploit dalam repositori ini akan menunjukkan perbedaan perilaku antara versi rentan (≤ 7.4.32) dan versi yang sudah dipatch (≥ 7.4.33).

---

🔬 Detail Teknis

Kerentanan terletak pada kurangnya validasi input saat membaca header file font GD (.gdf). File font memiliki header dengan struktur:

· 2 byte: magic number (0x01BE)
· 2 byte: jumlah karakter (nchars)
· 2 byte: lebar setiap karakter dalam pixel (width)
· 2 byte: tinggi setiap karakter (height)
· 2 byte: jumlah byte per karakter (char_offset)

Jika nilai width dibuat sangat besar (misalnya 65535), PHP akan mengalokasikan buffer yang terlalu kecil untuk menyimpan data bitmap font. Saat fungsi imagechar() kemudian membaca karakter dari font tersebut, ia akan mengakses memori di luar batas buffer, menyebabkan OOB read.

---

🚀 Cara Penggunaan

1. Clone repositori ini atau salin file exploit.php.
2. Jalankan lingkungan uji dengan Docker (lihat petunjuk di Dokumentasi Lengkap).
3. Eksekusi php exploit.php dan amati hasilnya.

---

📚 Referensi

· CVE-2022-31630 di NVD
· Commit patch di php-src
· PHP Release Announcements

---

Dibuat untuk tujuan edukasi ke
CVE