Seorang peneliti keamanan telah menemukan empat kerentanan, termasuk bug Remote Code Execution dalam OpenVPN. Kerentanan tersebut bahkan tidak tertangkap dalam dua audit keamanan besar dari perangkat lunak VPN open source tahun ini.
OpenVPN adalah salah satu solusi perangkat lunak VPN open source yang paling populer dan banyak digunakan untuk berbagai kebutuhan konektivitas, namun sangat populer untuk akses anonim dan private ke internet.
Tahun ini, dua audit keamanan independen OpenVPN dilakukan untuk mencari kekurangan, backdoor, dan kerentanan lainnya pada perangkat lunak open source – yang dilakukan oleh tim yang dipimpin oleh kripto-boffin Universitas Johns Hopkins, Dr. Matthew D. Green.
Audit tersebut menghasilkan beberapa kerentanan pada perangkat lunak open source yang banyak digunakan, sehingga memberikan OpenVPN sebuah chit yang bersih.
Peneliti menggunakan Fuzzer untuk menemukan Bug di OpenVPN
Peneliti Guido Vranken dari Belanda secara eksklusif menggunakan fuzzer dan baru-baru ini menemukan empat lubang keamanan di OpenVPN yang lolos dari audit keamanan.
Tiga dari empat kerentanan yang ditemukan peneliti adalah server-side, dua di antaranya menyebabkan server mengalami crash, sedangkan sisanya adalah bug sisi klien yang memungkinkan penyerang mencuri password untuk mendapatkan akses ke proxy.
Kerentanan yang paling penting dari semuanya adalah CVE-2017-7521, yang mempengaruhi sisi server OpenVPN dan berada pada fungsi extract_x509_extension() yang berhubungan dengan sertifikat SSL.
Kerentanan tersebut memungkinkan penyerang autentikasi remote untuk membuat dan mengirim sertifikat yang menabrak layanan OpenVPN atau memicu kesalahan ganda yang berpotensi menyebabkan Remote Code Execution di server.
Vranken tidak dapat menunjukkan bug RCE, namun berpendapat bahwa eksekusi kode jarak jauh dapat dicapai secara teori. Dalam sebuah laporan yang diterbitkan pada hari Rabu, dia telah menjelaskan bagaimana seseorang dapat menemukan kebocoran memori jarak jauh karena kegagalan layanan untuk memeriksa nilai pengembalian tertentu.
“Jika Anda melihat kode sumber OpenSSL, salah satu cara mengapa ASN1_STRING_to_UTF8 bisa gagal adalah jika tidak dapat mengalokasikan memori yang cukup,” kata Vranken dalam laporannya. “Jadi fakta bahwa penyerang dapat memicu JIKA double-free, server memiliki memori yang tidak mencukupi, dikombinasikan dengan fakta bahwa penyerang dapat secara sembarangan menguras server memori, membuat masuk akal bahwa remote double-free dapat dicapai.“
“Tapi jika double-free tidak memadai untuk mencapai Remote Code Execution, mungkin ada fungsi lain, yang perilakunya berbeda jauh di bawah daya ingat, yang bisa Anda eksploitasi.“
Kerentanan kedua, CVE-2017-7520, berada di jalan OpenVPN terhubung ke proxy Windows NTLM versi 2.
Penyerang man-in-the-middle antara klien OpenVPN dan server proxy dapat secara remote menabrak klien atau mencuri kata sandi pengguna ke proxy dari kebocoran memori.
Kerentanan hanya dapat dipicu dalam keadaan tertentu, seperti saat klien terhubung ke proxy melalui otentikasi NTLM versi 2, atau saat klien menentukan nama pengguna yang diakhiri dengan garis miring terbalik.
“Jika klien menggunakan proxy HTTP dengan otentikasi NTLM (–http-proxy [|’auto’|’auto-nct’] ntlm2), penyerang [MITM] man-in-the-middle antara klien dan proxy dapat menyebabkan klien mengalami crash atau mengungkapkan paling banyak 96 byte memori stack,” tim OpenVPN menjelaskan.
“Memori stack yang diungkapkan kemungkinan mengandung kata sandi proxy Jika kata kunci proxy tidak digunakan kembali, ini tidak mungkin membahayakan keamanan tunnnel OpenVPN itu sendiri. Klien yang tidak menggunakan opsi –http-proxy dengan otentikasi ntlm2 tidak terpengaruh.“
Dua kerentanan lainnya (CVE-2017-7508 dan CVE-2017-7522) adalah remote server crashes yang dapat memicu pengiriman paket IPv6 berbahaya atau data penting setelah otentikasi.
Patch untuk Server dan Klien Sudah Tersedia
Vranken secara bertanggung jawab mengungkapkan semua kerentanan yang dia temukan ke tim OpenVPN pada bulan Mei dan Juni, dan tim tersebut telah memperbaiki masalah dalam versi terbaru perangkat lunak VPN-nya.
Meskipun tidak ada bukti adanya kerentanan yang dieksploitasi di masyarakat, pengguna sangat disarankan untuk mengupdate instalasi mereka ke OpenVPN versi 2.4.3 atau 2.3.17 sesegera mungkin agar berada di pihak yang lebih aman.
Untuk rincian teknis yang lebih mendalam tentang semua kerentanan, Anda dapat melanjutkan ke laporan bertajuk “The OpenVPN Post-Audit Bug Bonanza,” yang diterbitkan oleh Vranken pada hari Rabu.