Menutup Celah Keamanan Lama: Update jQuery 3.2.1 ke 3.4.0

Salah satu hal yang sering luput dari perhatian ketika sebuah project sudah lama tidak disentuh adalah dependency pihak ketiga yang diam-diam menua — dan seiring waktu, menjadi pintu masuk bagi celah keamanan yang sudah diketahui publik. Itulah yang saya temukan minggu ini, melalui kiriman email GitHub security alert digest, di salah satu repository GitHub saya, Dockerproject.

Temuan Awal

GitHub Dependabot menandai repository ini dengan status “known security vulnerabilities detected”. Setelah ditelusuri lebih dalam melalui GitHub Security Advisory dan Dependency Graph, sumbernya adalah file:

pesbuk/web/js/jquery-3.2.1.slim.min.js

File ini adalah bundel jQuery versi 3.2.1 yang di-vendor langsung ke dalam project (tidak dikelola lewat package manager seperti npm), sehingga tidak pernah ter-update secara otomatis.

Detail Vulnerability

ItemDetail
CVECVE-2019-11358
AdvisoryGHSA-6c3j-c64m-qhgq
JenisCross-Site Scripting (XSS) via Prototype Pollution
SeverityMedium (CVSS 6.1)
Versi terdampakjQuery >= 1.1.4 dan < 3.4.0
Versi perbaikanjQuery 3.4.0

Inti masalahnya ada pada fungsi jQuery.extend(true, {}, ...). Jika sebuah objek sumber yang tidak disanitasi memiliki properti __proto__ yang enumerable, fungsi ini bisa “mencemari” Object.prototype bawaan JavaScript. Dalam skenario tertentu, ini bisa dimanfaatkan penyerang untuk menyisipkan skrip berbahaya ke halaman (XSS) — sebuah teknik yang dikenal sebagai prototype pollution.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *