Kerentanan telah dikenal pasti dalam Komposer yang mengganggu repositori Packagist PHP

Beberapa hari yang lalu berita diberitahu bahawa kelemahan kritikal telah dikenal pasti en pengurus pergantungan dari Karang (CVE-2021-29472) yang memungkinkan Anda untuk melaksanakan perintah sewenang-wenang pada sistem ketika memproses paket dengan nilai URL yang dibentuk khas yang menentukan arah untuk memuat turun kod sumber.

Masalahnya terserlah dalam komponen GitDriver, SvnDriver dan HgDriver digunakan dengan sistem kawalan sumber Git, Subversion, dan Mercurial. Kerentanan diperbaiki dalam Komposer versi 1.10.22 dan 2.0.13.

Khususnya, repositori pakej Packagist lalai Komposer, yang mengandungi 306.000 pakej pembangun PHP dan menawarkan lebih daripada 1.400 bilion muat turun bulanan, sangat terjejas.

Dalam ekosistem PHP, Composer adalah alat utama untuk mengurus dan memasang pergantungan perisian. Pasukan pengembangan di seluruh dunia menggunakannya untuk mempermudah proses peningkatan dan memastikan aplikasi berjalan dengan mudah di semua persekitaran dan versi.

Eksperimen menunjukkan bahawa jika ada maklumat mengenai masalah itu, penyerang dapat menguasai infrastruktur Packagist dan memintas tauliah penyelenggara atau mengalihkan muat turun paket ke pelayan pihak ketiga, mengatur pengiriman varian paket dengan perubahan. pengguna berniat jahat untuk menggantikan pintu belakang semasa pemasangan pergantungan.

Bahaya kepada pengguna akhir adalah terhad kerana kenyataan bahawa kandungan komposer.json biasanya ditentukan oleh pengguna dan pautan ke sumber diteruskan ketika mengakses repositori pihak ketiga, yang biasanya boleh dipercayai. Pukulan utama jatuh pada repositori Packagist.org dan perkhidmatan Private Packagist, yang memanggil Komposer dengan pemindahan data yang diterima dari pengguna. Penyerang boleh menjalankan kod mereka di pelayan Packagist dengan menjatuhkan pakej yang dibuat khas.

Pasukan Packagist menyelesaikan kerentanan dalam masa 12 jam dari pemberitahuan kerentanan. Penyelidik memaklumkan pembangun Packagist secara peribadi pada 22 April, dan masalahnya diselesaikan pada hari yang sama. Kemas kini Komposer awam dengan memperbaiki kerentanan dilancarkan pada 27 April, dan perinciannya didedahkan pada 28 April. Audit terhadap log di pelayan Packagist tidak mendedahkan aktiviti mencurigakan yang berkaitan dengan kerentanan.

Kesalahan suntikan hujah adalah kelas kesalahan yang sangat menarik yang sering diabaikan semasa tinjauan kod dan benar-benar diabaikan dalam interaksi kotak hitam.

Masalahnya disebabkan oleh kesalahan dalam kod pengesahan URL dalam fail root composer.json dan dalam pautan muat turun sumber. Bug ini terdapat dalam kod sejak November 2011. Packagist menggunakan lapisan khas untuk menguruskan muat turun kod tanpa terikat dengan sistem kawalan sumber tertentu, yang dijalankan dengan memanggil "fromShellCommandline" dengan argumen baris perintah.

Inti masalahnya ialah kaedah ProcessExecutor dibenarkan untuk menentukan parameter panggilan tambahan dalam URL. Pelarian seperti itu hilang dari pemandu GitDriver.php, SvnDriver.php dan HgDriver.php. Serangan GitDriver.php terhambat oleh kenyataan bahawa perintah "git ls-remote" tidak menyokong menentukan argumen tambahan setelah jalan.

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

Dengan menyerahkan pakej ujian dengan URL yang serupa dengan Packagist, para penyelidik memastikan bahawa setelah diterbitkan, pelayan mereka menerima permintaan HTTP dari salah satu pelayan Packagist di AWS yang berisi senarai fail dalam direktori semasa.

Harus diingat bahawa penyelenggara tidak mengenal pasti tanda-tanda eksploitasi kerentanan ini sebelumnya di tempat umum pembungkus barang.

Akhirnya, jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh melihat butirannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.