CVE-2026-48909 adalah vulnerability critical dengan CVSS 9.5 yang ditemukan pada ekstensi SP LMS (com_splms) untuk Joomla CMS. Ekstensi Learning Management System populer yang memiliki lebih dari 100.000 instalasi ini mengandung flaw PHP Object Injection yang memungkinkan penyerang tanpa autentikasi mencapai Remote Code Execution (RCE) melalui cookie `lmsOrders` yang tidak divalidasi.
APA YANG TERJADI?
Peneliti keamanan Amin Isayev dari Proxima Cyber Security menemukan bahwa komponen `cart.php` pada SP LMS versi 1.0.0 hingga 4.1.3 menerima cookie `lmsOrders` dari pengguna dan meneruskannya langsung ke fungsi `unserialize()` tanpa validasi apapun. Karena attacker mengontrol isi cookie ini sepenuhnya, mereka dapat menyuntikkan object PHP berbahaya yang memanfaatkan gadget chain `FormattedtextLogger` yang tersedia di Joomla untuk menulis file PHP ke disk dan mencapai RCE.
Yang membuat vulnerability ini semakin kritis adalah tidak dibutuhkannya autentikasi apapun. Setiap pengunjung website yang menggunakan SP LMS versi terdampak dapat mengeksploitasi flaw ini. PoC tersedia publik di GitHub dan exploit telah terbukti berhasil pada environment Joomla yang rentan.
DETAIL TEKNIS
Root cause terletak di `components/com_splms/models/cart.php` baris 28, di mana cookie `lmsOrders` di-base64 decode dan langsung diproses oleh `unserialize()`. Gadget chain yang dimanfaatkan melibatkan class `FormattedtextLogger` dari Joomla yang memiliki method `__destruct()` yang memanggil `initFile()` dan kemudian `File::write()`, memungkinkan penulisan kode PHP arbitrary ke disk. Gadget chain ini telah di-patch di Joomla 5.2.2 melalui PR #44428, namun SP LMS tetap rentan di semua versi Joomla karena flaw deserialization masih ada di komponen cart. Filter `cmd` pada `Input\Cookie::get()` menghapus karakter `+`, `/`, dan `=` dari base64, namun exploit menggunakan teknik hex2bin encoding dan padding alignment untuk melewati filter ini.
Detail teknis: CVSS 4.0 Score 9.5 Critical (AV:N/AC:L/AT:P/PR:N/UI:N), CWE-502 Deserialization of Untrusted Data, affected versions SP LMS 1.0.0 hingga 4.1.3, fixed in SP LMS 4.1.4. Vulnerability disclosed 26 Mei 2026 dan published 20 Juni 2026.
DAMPAK TERHADAP INDONESIA
Joomla masih menjadi salah satu Content Management System (CMS) yang cukup populer di Indonesia, terutama di kalangan institusi pendidikan, pemerintah daerah, dan UMKM yang menggunakan fitur Learning Management System. Dengan lebih dari 100.000 instalasi SP LMS secara global, potensi dampak di Indonesia cukup signifikan. Banyak platform e-learning di Indonesia yang dibangun di atas Joomla dengan ekstensi SP LMS untuk manajemen kursus dan pembelajaran online. Vulnerability ini memungkinkan penyerang mengambil alih kontrol penuh terhadap website, mencuri data siswa dan dosen, atau menggunakan server sebagai staging point untuk serangan lanjutan. Sesuai dengan PDP Law, organisasi yang mengelola data pribadi wajib melindunginya dari serangan, dan vulnerability seperti ini menjadi pengingat pentingnya patch management yang ketat.
REKOMENDASI MITIGASI
Langkah pertama dan paling krusial: segera update SP LMS ke versi 4.1.4 atau yang lebih baru. Kedua, update Joomla ke versi 5.2.2 atau yang lebih baru untuk menghilangkan gadget chain `FormattedtextLogger`. Ketiga, sebagai mitigasi interim, validasi dan sanitasi cookie `lmsOrders` sebelum dilakukan deserialization — gunakan `json_encode`/`json_decode` sebagai pengganti `unserialize()`. Keempat, implementasikan Web Application Firewall (WAF) untuk mendeteksi payload deserialization pada request cookie. Kelima, audit semua ekstensi Joomla yang terinstall untuk memastikan tidak ada vulnerability serupa pada komponen lain.
Analisa Retasan
Vulnerability ini merupakan contoh klasik dari CWE-502 Deserialization of Untrusted Data yang masih bertahan di ekosistem CMS populer. Penggunaan `unserialize()` pada data yang dikontrol pengguna adalah anti-pattern yang telah dikenal selama lebih dari satu dekade, namun masih muncul di produksi pada tahun 2026. Yang menarik adalah bagaimana attacker dapat melewati filter `cmd` pada `Input\Cookie::get()` Joomla — teknik bypass menggunakan hex2bin dan padding alignment menunjukkan bahwa input validation berbasis blacklist sangat rentan terhadap bypass kreatif.
Gadget chain yang dimanfaatkan melalui `FormattedtextLogger` mengingatkan pada serangkaian PHP Object Injection sebelumnya di ekosistem Joomla, termasuk vulnerability yang melibatkan gadget chain serupa pada komponen core. Fakta bahwa Joomla 5.2.2 telah mem-patch gadget ini sementara SP LMS tetap mempertahankan `unserialize()` menunjukkan adanya disconnect antara patching core CMS dan ekstensi pihak ketiga. Ini adalah masalah sistemik dalam ekosistem Joomla di mana patch keamanan pada core tidak menjamin keamanan ekstensi yang mengintegrasikan kode berisiko.
Dari perspektif Indonesia, institusi pendidikan yang bergantung pada Joomla + SP LMS untuk platform e-learning menjadi target yang sangat menarik bagi penyerang. Data akademik, kredensial pengguna, dan akses ke infrastruktur jaringan institusi semuanya berada dalam risiko. Penting bagi tim IT di institusi pendidikan Indonesia untuk segera melakukan inventarisasi dan patching, serta mempertimbangkan penggunaan DLP dan monitoring akses cookie yang mencurigakan sebagai lapisan pertahanan tambahan.
Sumber: GitHub — CVE-2026-48909 PoC


