Vulnerability
22 August 2025

Mengeksploitasi Kerentanan Stack Buffer Overflow di Fortinet

Mengeksploitasi Kerentanan Stack Buffer Overflow di Fortinet

Dalam artikel ini, kami akan membahas secara detail kerentanan serius stack-based buffer overflow dengan kode CVE-2025-32756 yang memengaruhi sejumlah produk Fortinet. Kerentanan baru-baru ini disorot dalam advisory darurat dari FortiGuard Labs. Kami akan menguraikan strategi umum untuk mengeksploitasi jenis kerentanan ini guna mencapai unauthenticated remote code execution (RCE).

 

Kerentanan CVE-2025-32756

Kerentanan ini, yang dikategorikan sebagai stack-based buffer overflow, berada di dalam administrative API produk Fortinet yang terdampak. Secara khusus, kerentanan ditemukan pada binary admin.fe CGI, yang dapat diakses melalui web server dengan konfigurasi mod_fcgid. Konfigurasi ini meningkatkan kemungkinan eksploitasi berhasil karena mencegah terjadinya crash total pada server.
Akar masalah terletak pada cara penanganan session cookie, khususnya APsCOOKIE session cookie, yang memiliki field seperti Era, Payload, dan AuthHash.

 

Pemicu Kerentanan

Bug ini dipicu ketika terjadi proses base64 decoding pada field AuthHash di dalam fungsi cookieval_unwrap(), yang terdapat pada shared library libhttputil.so.

Sebagaimana terlihat dalam cuplikan kode yang belum dipatch:

 

iVar2 = __isoc99_sscanf(param_1,"Era=%1d&Payload=%m[^&]&AuthHash=%m[^&]&",&Era,&Payload, &AuthHash);
input_size = strlen((char *)AuthHash);
iVar3 = EVP_DecodeUpdate(ctx,(uchar *)output_buffer,&output_size,AuthHash,(int)input_size);

Masalah utama muncul karena tidak adanya pemeriksaan ukuran input AuthHash sebelum diteruskan ke fungsi EVP_DecodeUpdate. Buffer yang dialokasikan untuk hasil decoding hanya berukuran 16 byte di stack. Dengan memasukkan field AuthHash yang berisi string base64 terlalu panjang, penyerang dapat memaksa proses decoding menulis di luar batas buffer tersebut, menyebabkan stack buffer overflow klasik.

Kerentanan ini bersifat unauthenticated. Artinya, penyerang tidak memerlukan kredensial sebelumnya untuk memicu bug ini. Endpoint yang rentan dapat diuji dengan perintah sederhana seperti:
bash curl -k -L -v https://<target>/module/admin.fe

 

Eksploitasi

Ini adalah skenario klasik stack buffer overflow. Dengan mengirimkan APsCOOKIE yang berisi AuthHash hasil base64-encoded dengan panjang berlebihan, penyerang dapat mengendalikan data yang dituliskan ke dalam stack.

 

Overflow ini memungkinkan penyerang untuk menimpa nilai penting pada stack, termasuk saved registers dan yang paling utama adalah alamat pengembalian (RIP). Dengan menimpa alamat pengembalian tersebut, penyerang bisa mengendalikan arah eksekusi program setelah fungsi rentan (cookieval_unwrap()) selesai dijalankan. Arah eksekusi ini dapat diarahkan ke kode yang dikendalikan penyerang, baik yang disuntikkan langsung ke dalam stack maupun yang ditempatkan di area memori lain.

Sebuah proof-of-concept exploit cukup dilakukan dengan cara mengirimkan nilai AuthHash yang telah dirancang khusus, misalnya berupa string panjang dari base64-encoded null bytes, ke endpoint yang rentan.

 

Dampak

Eksploitasi yang berhasil dari CVE-2025-32756 akan menghasilkan unauthenticated RCE, memberikan penyerang kemampuan menjalankan kode sewenang-wenang pada sistem yang terdampak dengan hak akses layanan yang rentan.

CISA (Cybersecurity and Infrastructure Security Agency, AS) telah menambahkan kerentanan ini ke dalam katalog Known Exploited Vulnerabilities (KEV), menegaskan bahwa bug ini aktif dieksploitasi di dunia nyata. Ditambah dengan adanya proof-of-concept publik, kerentanan ini menjadi ancaman yang sangat mendesak.

 

Mitigasi

Versi patch dari perangkat lunak terdampak memperbaiki bug dengan menambahkan pemeriksaan ukuran input sebelum operasi EVP_DecodeUpdate. Seperti terlihat pada kode hasil patch:
input_size = strlen((char *)AuthHash);
if (input_size < 0x1e) {
// safe to decode
}

Pemeriksaan ini (input_size < 0x1e) memastikan string input untuk base64 decoding tidak melebihi batas, sehingga mencegah buffer overflow.
FortiGuard Labs sangat menyarankan seluruh pengguna segera memperbarui produk Fortinet yang terdampak atau menerapkan mitigasi yang tersedia. Indicators of Compromise (IoC) juga telah dirilis dalam advisory resmi. Tindakan cepat sangat penting mengingat kerentanan ini tengah dieksploitasi secara aktif.

 

Kesimpulan

Kasus CVE-2025-32756 menunjukkan bagaimana kerentanan sederhana seperti tidak adanya pemeriksaan ukuran input dapat berakibat fatal berupa stack buffer overflow. Berbeda dengan eksploitasi kompleks seperti Chrome UAF yang membutuhkan manipulasi memori lanjutan dan infoleak, bug Fortinet ini adalah contoh klasik namun sama berbahayanya, karena langsung mengarah ke unauthenticated RCE.

Eksploitasi aktif di dunia nyata menegaskan kembali betapa pentingnya validasi input yang mendasar dan penerapan patch tepat waktu untuk menjaga sistem tetap aman.