Kerentanan telah diidentifikasi di Komposer yang membahayakan repositori PHP Packagist

Beberapa hari yang lalu tersiar kabar bahwa kerentanan kritis telah diidentifikasi en manajer ketergantungan Menyusun (CVE-2021-29472) yang memungkinkan Anda menjalankan perintah arbitrer pada sistem saat memproses paket dengan nilai URL yang dibentuk secara khusus yang menentukan arah untuk mengunduh kode sumber.

Masalahnya memanifestasikan dirinya dalam komponen GitDriver, SvnDriver, dan HgDriver digunakan dengan sistem kendali sumber Git, Subversion, dan Mercurial. Kerentanan telah diperbaiki di Komposer versi 1.10.22 dan 2.0.13.

Secara khusus, repositori paket Packagist default Komposer, yang berisi 306.000 paket pengembang PHP dan menawarkan lebih dari 1.400 miliar unduhan per bulan, sangat terpengaruh.

Dalam ekosistem PHP, Komposer adalah alat utama untuk mengelola dan menginstal dependensi perangkat lunak. Tim pengembang di seluruh dunia menggunakannya untuk memudahkan proses peningkatan dan memastikan aplikasi berjalan dengan mudah di semua lingkungan dan versi.

Eksperimen menunjukkan bahwa jika ada informasi tentang masalah tersebut, penyerang dapat mengambil kendali infrastruktur Packagist dan mencegat kredensial pengelola atau mengalihkan unduhan paket ke server pihak ketiga, mengatur pengiriman varian paket dengan perubahan. pengguna jahat untuk mengganti pintu belakang selama instalasi ketergantungan.

Bahaya bagi pengguna akhir terbatas karena fakta bahwa konten composer.json biasanya ditentukan oleh pengguna dan tautan ke sumber diteruskan saat mengakses repositori pihak ketiga, yang biasanya dapat diandalkan. Pukulan utama jatuh pada repositori Packagist.org dan layanan Private Packagist, yang memanggil Komposer dengan transfer data yang diterima dari pengguna. Penyerang dapat menjalankan kode mereka di server Packagist dengan menjatuhkan paket yang dibuat khusus.

Tim Packagist menyelesaikan kerentanan dalam waktu 12 jam setelah pemberitahuan kerentanan. Peneliti secara pribadi memberi tahu pengembang Packagist pada 22 April, dan masalah telah diperbaiki pada hari yang sama. Pembaruan Komposer publik dengan perbaikan untuk kerentanan dirilis pada 27 April, dan detailnya terungkap pada 28 April. Audit log di server Packagist tidak mengungkapkan aktivitas mencurigakan yang terkait dengan kerentanan.

Kesalahan injeksi argumen adalah kelas kesalahan yang sangat menarik yang sering diabaikan selama peninjauan kode dan sepenuhnya diabaikan dalam interaksi kotak hitam.

Masalahnya disebabkan oleh kesalahan pada kode validasi URL di file composer.json root dan di link download sumber. Bug telah ada dalam kode sejak November 2011. Packagist menggunakan lapisan khusus untuk mengelola unduhan kode tanpa terikat ke sistem kontrol sumber tertentu, yang dijalankan dengan memanggil "fromShellCommandline" dengan argumen baris perintah.

Inti masalahnya adalah metode ProcessExecutor memungkinkan Anda menentukan parameter panggilan tambahan di URL. Pelarian seperti itu hilang di driver GitDriver.php, SvnDriver.php dan HgDriver.php. Serangan GitDriver.php terhambat oleh fakta bahwa perintah "git ls-remote" tidak mendukung penentuan argumen tambahan setelah jalur.

Serangan pada HgDriver.php dimungkinkan dengan meneruskan parameter "–config" ke utilitas "hq", yang memungkinkan pengorganisasian eksekusi perintah apa pun dengan memanipulasi konfigurasi "alias.identify".

Dengan mengirimkan paket pengujian dengan URL yang mirip ke Packagist, para peneliti memastikan bahwa setelah dipublikasikan, server mereka menerima permintaan HTTP dari salah satu server Packagist di AWS yang berisi daftar file di direktori saat ini.

Perlu dicatat bahwa pengelola tidak mengidentifikasi tanda-tanda eksploitasi kerentanan ini sebelumnya dalam contoh publik pembuat paket.

Terakhir, jika Anda tertarik untuk mengetahuinya lebih lanjut, Anda bisa melihat detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.