Kod berniat jahat dijumpai di pemasang npm purescript

purescript npm

Beberapa hari yang lalu kod jahat dikesan dalam kebergantungan pakej npm dengan pemasang PureScript, yang dimanifestasikan ketika cuba memasang purescript pakej.

Kod berniat jahat tertanam melalui pergantungan beban-dari-cwd-atau-npm dan kebergantungan peta laju. Harus diingat bahawa pengarang asal pakej npm dengan pemasang PureScript, yang sehingga baru-baru ini terlibat dalam penyelenggaraan pakej npm ini, tetapi paket itu dikirimkan ke penyelenggara lain, bertanggung jawab untuk mengiringi paket dengan dependensi ini.

Mengenai masalahnya

Masalahnya ditemui oleh salah seorang penganalisis baru pakej tersebut, kepada siapa hak pemeliharaan dipindahkan setelah banyak perselisihan dan perbincangan jelek dengan pengarang asal purecript pakej npm.

Penyelenggara baru bertanggungjawab untuk penyusun PureScript dan mereka menegaskan bahawa pakej NPM dengan pemasangnya harus diperbaiki oleh penyelenggara itu sendiri, bukan oleh pemaju di luar projek.

Pengarang pakej npm dengan pemasang PureScript tidak setuju untuk waktu yang lama, tetapi kemudian menyerah dan memberi akses ke repositori. Namun, beberapa tanggungan ditinggalkan di bawah kawalannya.

Minggu lalu, pelepasan penyusun PureScript 0.13.2 diumumkan dan penyelenggara baru menyiapkan kemas kini pakej npm yang sesuai dengan pemasang, yang mana kod jahat dikesan.

Kod jahat pertama kali dimasukkan ke dalam pakej npm "load-from-cwd-or-npm" dalam versi 3.0.2 dan kemudian dalam pakej peta kadar dari versi 1.0.3. Pada hari-hari terakhir beberapa versi kedua-dua pakej telah diterbitkan.

Beralih dari pos yang mengiringi pengarang pakej npm dengan pemasang PureScript, dia mengatakan bahawa akaunnya dikompromikan oleh penyerang yang tidak diketahui.

Walau bagaimanapun, dalam bentuk semasa, tindakan kod jahat hanya dibatasi dengan mensabotaj pemasangan pakej, yang merupakan versi pertama penyelenggara baru. Tindakan berniat jahat dikeluarkan ketika cuba memasang pakej dengan perintah "npm i -g purescript" tanpa melakukan aktiviti jahat yang eksplisit.

Dua serangan dikenal pasti

Pendek kata, kod itu mensabotaj pemasang ppm ncript untuk mengelakkan muat turun selesai, menyebabkan pemasang digantung semasa langkah "Periksa sama ada binari yang dikompilasi disediakan untuk platform anda".

Eksploitasi pertama melakukan ini dengan memecahkan pakej load-from-cwd-atau-npm supaya sebarang panggilan ke loadFromCwdOrNpm () akan mengembalikan urutan lulus dan bukannya paket yang diharapkan (dalam hal ini, paket permintaan, yang kami gunakan untuk memuat turun binari penyusun). Iterasi kedua eksploitasi melakukan ini dengan memodifikasi fail sumber untuk mengelakkan panggilan balik muat turun tidak diaktifkan.

4 hari kemudian pemaju memahami sumber kekurangan dan bersiap untuk melepaskan kemas kini untuk mengecualikan load-from-cwd-o-npm dari dependensi, penyerang melepaskan kemas kini lain memuatkan dari cwd-atau-npm 3.0.4, di mana kod jahat telah dikeluarkan.

Walau bagaimanapun, kemas kini ke dependensi Rate-Map 1.0.3 yang lain segera dikeluarkan, di mana perbaikan telah ditambahkan yang menyekat panggilan balik untuk dimuat turun.

Itulah, dalam kedua kes tersebut, perubahan versi baru dari load-from-cwd-atau-npm dan laju peta adalah sifat penyimpangan yang nyata.

Juga, dalam kod jahat terdapat pemeriksaan yang memicu tindakan yang gagal hanya ketika memasang versi penyimpan baru dan tidak muncul sama sekali ketika memasang versi sebelumnya.

Pembangun menyelesaikan masalah dengan melepaskan kemas kini di mana pergantungan yang bermasalah dikeluarkan.

Untuk mengelakkan kod yang dikompromikan dipasang pada sistem pengguna setelah berusaha memasang versi PureScript yang bermasalah.

Akhirnya pemaju mengesyorkan kepada semua orang yang mempunyai versi pakej tersebut di sistem mereka hapus kandungan direktori node_modules dan fail package-lock.json dan kemudian tetapkan purescript versi 0.13.2.


Tinggalkan komen anda

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

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  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.