Bug PHP PEAR Berusia 15 Tahun Ditemukan, Awas!

PEAR sudah siap untuk dieksploitasi melalui kelemahan kriptografi dan bug di dependensi yang sudah ketinggalan zaman.

UPDATED Penyerang dapat mendatangkan malapetaka pada ekosistem PHP dengan mengeksploitasi sepasang kerentanan lama yang baru saja ditambal di manajer paket PEAR, menurut peneliti keamanan.

PEAR dibiarkan di risiko pengambilalihan berbahaya oleh cacat yang timbul dari entropi lemah pada fungsi reset sandi, ungkap Thomas Chauchefoin, peneliti kerentanan di perusahaan keamanan Swiss SonarSource, dalam sebuah posting blog.

Attackers kemudian dapat mengamankan akses terus-menerus ke server PEAR pusat melalui penyalahgunaan kerentanan terpisah dalam versi usang dari dependensi yang dibundel.

Kelemahannya belum ditemukan selama lebih dari 15 tahun. Chauchefoin mengatakan kepada The Daily Swig bahwa para peneliti fakta, dan bukan penyerang, menemukan kelemahannya adalah “keberuntungan”, mengingat “kompromi dari repositori PEAR akan memungkinkan penyerang untuk membajak paket apa pun yang dihosting di platform” dan menerbitkan rilis berbahaya.

SonarSource telah menerbitkan sebuah video yang menjelaskan skenario serangan dua arah.

`Keahlian teknis minimal`

PEAR tidak lagi disukai di tengah meningkatnya dominasi manajer paket PHP saingan Composer, yang repositori utamanya SonarSource mengungkapkan kerentanan yang sama seriusnya tahun lalu.

Namun, PEAR masih digunakan secara luas, dengan paket Net_SMTP dan Mail saja yang mengumpulkan 100.000 unduhan per bulan melalui penginstal PHP.

Kerentanan rantai pasokan “dapat dengan mudah diidentifikasi dan dieksploitasi oleh pelaku ancaman hanya dengan keahlian teknis minimal, menyebabkan gangguan penting dan pelanggaran keamanan di seluruh dunia”, menurut Chauchefoin.

Weak PRNG3h Fungsi reset kata sandi hh
PEAR menggunakan mt_rand() untuk menghasilkan nilai acak, meskipun tekniknya sudah usang dan tidak cocok untuk menghasilkan nilai yang aman secara kriptografis.

Setelah nilai digabungkan dan di-hash dengan md5(), “nilai akhir hanya didasarkan pada dua yang tidak diketahui, yang merupakan output dari mt_rand() dan time(),” kata Chauchefoin.

“Yang pertama tidak dapat menghasilkan banyak nilai (10), dan yang kedua dapat dengan mudah didekati oleh penyerang. Selain itu, server HTTP dari pear.php.net menambahkan header Tanggal ke responsnya, mempersempitnya menjadi hanya beberapa nilai (< 5).”

Para peneliti menyimpulkan bahwa penyerang dapat mengamankan token reset kata sandi yang valid dalam 50 upaya.

Bug lainnya menyediakan pintu belakang untuk melanjutkan serangan meskipun bug pertama telah diperbaiki. “Itu juga dapat membantu mereka untuk menyembunyikan jejak mereka dengan memodifikasi log akses,” kata Chauchefoin.

Cacat muncul karena pearweb menarik versi 1.4.7 dari Archive_Tar, yang rentan terhadap CVE-2020-36193, masalah traversal direktori yang dapat menyebabkan eksekusi kode jarak jauh (RCE) di PEAR.

SonarSource memperingatkan pengelola PEAR tentang bug pada 30 Juli 2021.

Mereka ditambal di pearweb versi 1.32, dirilis pada 13 Maret, dengan semua versi sebelumnya terpengaruh.

Namun, Chauchefoin menyarankan pengguna PEAR untuk “pertimbangkan untuk bermigrasi ke Composer, di mana komunitas kontributor lebih aktif dan paket yang sama tersedia”.

Terlalu banyak kepercayaan

Serangan rantai pasokan perangkat lunak yang menargetkan PEAR dan alat pengembang serupa memiliki dampak yang sangat signifikan mengingat pengembang sering menjalankannya di komputer mereka sebelum menerapkannya ke produksi server, “menciptakan peluang bagi penyerang untuk berporos ke jaringan internal perusahaan”, kata Chauchefoin.

The PEAR kegigihan kekurangan selama bertahun-tahun menyoroti bagaimana perusahaan dengan sumber daya yang baik yang mengandalkan manajer paket tidak melakukan cukup untuk mengamankan mereka. “Layanan backend dari manajer paket hanya mendapat sedikit perhatian dari kontributor keamanan, sementara mereka adalah komponen utama dari ekosistem setiap bahasa,” peneliti menjelaskan.

Mengutip kelemahan serupa yang ditemukan di Composer, CocoaPods, dan RubyGems, Chauchefoin memperingatkan bahwa “kerentanan serupa akan ditemukan lagi, jadi sangat penting untuk mencoba mengurangi dampaknya dengan menghilangkan kepercayaan yang kami berikan pada layanan backend; inisiatif seperti sigstore adalah jawaban yang baik untuk itu dan kami harus mendorong untuk adopsi mereka”.
Artikel ini diperbarui pada tanggal 5 April dengan komentar tambahan dari SonarSource.

ANDA JUGA MENYUKAIGitLab menangani bug
pembajakan akun kritis

Referensi PortSwigger.com