July 11, 2026
Memburu Celah Keamanan di Situs Besar: Eksplorasi CVE-2021–41182 pada jQuery UI
Pernahkah Anda membayangkan bahwa sebuah situs berita besar yang Anda kunjungi setiap hari mungkin memiliki celah keamanan yang bisa…
By Abdulrhidayat
2 min read
Pernahkah Anda membayangkan bahwa sebuah situs berita besar yang Anda kunjungi setiap hari mungkin memiliki celah keamanan yang bisa dimanfaatkan oleh pihak tidak bertanggung jawab? Saya baru-baru ini menemukan hal menarik saat melakukan validasi keamanan pada sebuah situs berita ternama di Indonesia.
Berawal dari daftar CVE yang cukup panjang, saya memutuskan untuk fokus pada satu kerentanan spesifik yang menarik perhatian saya: CVE-2021–41182, sebuah Cross-Site Scripting (XSS) pada komponen Datepicker di jQuery UI. Kali ini saya akan membagikan pengalaman saya dalam menemukan, menguji, dan memvalidasi celah keamanan ini.
Apa itu CVE-2021–41182?
CVE-2021–41182 adalah kerentanan pada jQuery UI, tepatnya pada widget Datepicker yang digunakan untuk memilih tanggal. Masalahnya terletak pada opsi altField . Ketika aplikasi mengambil nilai opsi ini dari sumber yang tidak tepercaya (seperti input pengguna), penyerang bisa menyisipkan kode JavaScript berbahaya .
Bayangkan Anda mengisi form tanggal di sebuah website. Tanpa Anda sadari, di balik layar ada kode jahat yang bisa mencuri data atau melakukan hal-hal berbahaya lainnya. Itulah yang bisa terjadi jika kerentanan ini dieksploitasi .
Skor CVSS untuk kerentanan ini adalah 6.1 (Medium) dengan vektor serangan dari jaringan, kompleksitas rendah, dan memerlukan interaksi pengguna .
Bukti Konsep (Proof of Concept) yang Sederhana
Kerentanan ini sebenarnya cukup mudah untuk dibuktikan. Inilah kode yang saya gunakan untuk melakukan validasi:
javascript
// Membuat elemen input untuk datepicker
$('body').append('<input type="text" id="datepickerTest">');
// Inisialisasi datepicker dengan payload XSS
$('#datepickerTest').datepicker({
altField: "<img onerror='alert(\"XSS jQuery UI CVE-2021-41182\")' src='/404.png' />"
});
// Membuka datepicker untuk memicu eksekusi
$('#datepickerTest').datepicker('show');// Membuat elemen input untuk datepicker
$('body').append('<input type="text" id="datepickerTest">');
// Inisialisasi datepicker dengan payload XSS
$('#datepickerTest').datepicker({
altField: "<img onerror='alert(\"XSS jQuery UI CVE-2021-41182\")' src='/404.png' />"
});
// Membuka datepicker untuk memicu eksekusi
$('#datepickerTest').datepicker('show');Kode ini sederhana, tetapi dampaknya bisa besar . Saat datepicker dibuka, kode JavaScript di dalam atribut onerror akan dijalankan . Ini membuktikan bahwa kita bisa menjalankan kode sewenang-wenang di browser korban.
Proses Validasi: Langkah Demi Langkah
Saya melakukan validasi dengan langkah-langkah berikut:
- Identifikasi: Menemukan bahwa situs target menggunakan jQuery UI versi 1.10.3 (versi yang sudah kadaluwarsa dan rentan).
- Persiapan: Membuka Developer Tools di browser (F12) dan mengakses tab Console.
- Eksekusi: Menjalankan kode PoC di atas.
- Hasil: Muncul pop-up alert yang menunjukkan kode JavaScript berhasil dieksekusi. Ini adalah bukti konklusif bahwa kerentanan tersebut valid dan dapat dieksploitasi.
Yang menarik adalah, meskipun saya melakukan validasi di browser sendiri (seperti yang biasa dilakukan), ini cukup untuk membuktikan bahwa situs tersebut memiliki celah keamanan yang nyata.
Dampak yang Perlu Diwaspadai
Apa yang bisa terjadi jika kerentanan ini dieksploitasi? Dampaknya cukup serius bagi pengguna:
- Pencurian Cookie: Penyerang bisa mencuri cookie sesi dan membajak akun Anda .
- Pencurian Data: Informasi sensitif bisa disusupi atau dicuri .
- Phishing: Korban bisa diarahkan ke situs palsu untuk mencuri kredensial.
- Defacement: Tampilan halaman web bisa diubah oleh penyerang .
Bagaimana Memperbaikinya?
Untungnya, solusi untuk masalah ini sudah tersedia . Berikut rekomendasi perbaikannya:
- Perbarui jQuery UI ke versi 1.13.0 atau yang lebih baru . Versi ini telah menambal kerentanan dengan memperlakukan nilai
altFieldsebagai CSS selector, sehingga mencegah eksekusi kode yang tidak diinginkan. - Jika pembaruan belum memungkinkan, jangan pernah menerima nilai
altFielddari sumber yang tidak tepercaya . Lakukan validasi dan sanitasi input dengan ketat.
Penutup
Pengalaman menemukan dan memvalidasi CVE-2021–41182 ini mengingatkan kita bahwa kerentanan keamanan bisa bersembunyi di mana saja, bahkan di komponen-komponen kecil yang sering kita abaikan. Validasi lokal dengan mengakses Console browser adalah langkah awal yang penting dan sah untuk membuktikan sebuah kerentanan.
Jika Anda menemukan hal serupa, jangan ragu untuk melaporkannya. Ini adalah bentuk kontribusi kita terhadap ekosistem digital yang lebih aman.