Instalasi CMS WordPress rentan terhadap masalah deserialization PHP (juga dikenal sebagai unserialization), ungkap seorang peneliti keamanan pada awal bulan ini.

Bug telah dilaporkan ke tim WordPress pada 28 Februari 2017, tetapi tetap tidak berubah hingga hari ini, lebih dari satu setengah tahun setelah laporan pertama.

Kerentanan ada di PHP, bukan di WordPress

Masalah ini ternyata tidak hanya memengaruhi CMS WordPress, tetapi semua aplikasi dan library berbasis PHP yang menangani data user-supplied.

Kerentanan dalam cara PHP mengubah objek PHP (data mentah) menjadi string dan kembali ke objek PHP lagi. Proses ini disebut serialisasi dan deserialization, masing-masing, dan digunakan dalam semua bahasa pemrograman untuk memindahkan data antara server, layanan, atau aplikasi yang berbeda.

Proses serialization/deserialization PHP telah diketahui rentan terhadap berbagai eksploitasi sejak 2009 ketika peneliti keamanan Jerman Stefan Esser mendokumentasikan serangan pertama yang memanfaatkan kerentanan dalam serialisasi/deserialization rutin. Sejak itu, peneliti lain telah mencatat berbagai metode lain untuk mengeksploitasi proses ini untuk mengambil alih server dan aplikasi PHP.

Serangan deserialization PHP baru ditemukan

Berbicara di dua konferensi keamanan bulan ini —Black Hat Las Vegas dan BSides Manchester — Sam Thomas, seorang peneliti keamanan dengan Secarma Labs, telah mengungkapkan cara baru menggunakan proses deserialization PHP untuk mencapai eksekusi kode pada server dan aplikasi.

Tekniknya bergantung pada penyerang yang memiliki kemampuan untuk memasok (upload) data yang salah ke server. Data tersebut salah dalam cara sedemikian rupa untuk memanggil “phar://” wrapper PHP dan akhirnya memadukan berbagai operasi yang memberikan kemampuan kepada penyerang untuk mengeksekusi kode berbahaya.

Thomas telah mendokumentasikan kerentanan ini dalam white-paper yang dirilis minggu ini, dan yang dipresentasikannya di konferensi Black Hat dan BSides. White-paper bisa kalian unduh di sini, sementara video presentasi Thomas ‘BSides bisa kalian simak bawah ini.

Masalah ini mempengaruhi WordPress, Typo3, TCPDF,  dan mungkin lebih banyak lagi

Presentasinya mencakup tiga studi kasus yang menunjukkan bagaimana ia menggunakan bug yang ia temukan dalam proses unserialize PHP untuk mengeksploitasi platform WordPress dan Typo3 CMS, juga library TCPDF yang tertanam di dalam Contao CMS.

Di WordPress, bug deserialization PHP mempengaruhi fungsi pemrosesan thumbnail CMS, dan mengeksploitasi kerentanan membutuhkan penyerang yang memiliki kemampuan untuk mengunggah gambar yang salah pada platform.

Serangan ini membutuhkan dua jenis payload yang berbeda untuk dieksploitasi karena perubahan platform WordPress di versi 4.9 — satu payload untuk versi WordPress sebelum 4.9, dan versi lainnya untuk versi berikutnya. Kalian dapat melihat Thomas menjelaskan langkah-langkah serangan di WordPress pada menit 29:25 dalam video di atas.

Sementara masalah belum diperbaiki di WordPress, Thomas mengatakan tim Typo3 memperbaiki bug dalam versi 7.6.30, 8.7.17, dan 9.3, yang dirilis pada 12 Juli 2018. Dia mengajukan laporan pada Typo3 pada tanggal 9 Juni 2018.

Kerentanan juga dilaporkan pada 24 Mei 2018 ke proyek TCPDF, library yang ditujukan untuk bekerja dengan file PDF di PHP, dikabarkan masih rentan. Memperbaiki masalah dalam PHP itu sendiri bukanlah suatu pilihan, dan patching perlu dilakukan pada tingkat aplikasi.

Masalah serialisasi mempengaruhi banyak bahasa pemrograman

Penelitian ini melanjutkan tren baru-baru ini, dalam menunjukkan bahwa objek (un)serialization merupakan bagian integral dari beberapa bahasa modern,” tulis Thomas dalam white-papernya. “Kita harus terus-menerus sadar akan dampak keamanan dari mekanisme yang terpapar pada data yang dikontrol oleh penyerang.”

Thomas mengacu pada fakta bahwa kerentanan ini telah menjadi penyakit dalam banyak bahasa pemrograman.

Mereka telah berdampak pada Java yang paling sulit dalam dekade terakhir ini, dan Oracle baru-baru ini mengumumkan untuk menghilangkan dukungan serialisasi di Java. Dan masalah serialisasi juga memengaruhi aplikasi Ruby dan .NET.


Like it? Share with your friends!

Muhammad Zaky Zulfiqor

I'm a simple person who like code, security enthusiast, share knowledge, always learning new information about technology and cyber security. I'd like to think myself as an J-Pop, J-Rock, Rock, Deathcore, Electronicore, Metalcore, and Metal fan and use my choice of music for positive self-regulatory purposes. In addition, I am also a fan of Anime, Manga, and Light Novel from Japan.

Comments

error: Content is protected !!