Kerentanan dina NPM anu nyababkeun nimpa file dina sistem

GitHub parantos ngungkabkeun detil tujuh kerentanan dina bungkusan tar sareng @npmcli / arborist, anu nyayogikeun fungsi pikeun damel sareng arsip tar sareng ngitung tangkal kagumantungan dina Node.js. Kerentanan ngamungkinkeun, nalika ngabongkar arsip anu dirarancang khusus, nimpa file di luar diréktori akar tempat ngabongkar bungkusan dilaksanakeun, sajauh anu diidinan hak aksés ayeuna. Masalah ngamungkinkeun pikeun ngatur palaksanaan kode sawenang dina sistem, contona, ku nambahkeun paréntah ka ~/.bashrc atawa ~/.profile lamun hiji operasi dipigawé ku pamaké unprivileged, atawa ku ngaganti file sistem nalika ngajalankeun sakumaha akar.

Bahaya kerentanan diperparah ku kanyataan yén kode masalah dianggo dina manajer pakét npm nalika ngajalankeun operasi sareng pakét npm, anu ngamungkinkeun pikeun ngatur serangan ka pangguna ku cara nempatkeun pakét npm anu dirarancang khusus dina gudang, pamrosésan. nu bakal ngaéksekusi kodeu panyerang dina sistem. Serangan kasebut mungkin bahkan nalika masang bungkusan dina modeu "-ignore-scripts", anu nganonaktipkeun palaksanaan skrip anu diwangun. Dina total, npm mangaruhan opat kerentanan (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 sareng CVE-2021-39135) tina tujuh. Dua masalah munggaran ngeunaan pakét tar, sareng dua sésana nyaéta pakét @npmcli / arborist.

Kerentanan anu paling bahaya, CVE-2021-32804, disababkeun ku kanyataan yén nalika ngabersihkeun jalur mutlak anu ditetepkeun dina arsip tar, karakter "/" diulang henteu leres-leres diolah-ngan karakter anu munggaran dihapus, sedengkeun anu sanésna ditinggalkeun. Contona, jalur "/home/user/.bashrc" bakal dirobah jadi "home/user/.bashrc" jeung jalur "//home/user/.bashrc" jadi "/home/user/.bashrc". Kerentanan kadua, CVE-2021-37713, némbongan ngan dina platform Windows sareng pakait sareng beberesih anu teu leres tina jalur relatif anu kalebet karakter drive anu henteu terbatas ("C: some\path") sareng sekuen pikeun mulang ka diréktori saméméhna ( "C:../foo") .

Kerentanan CVE-2021-39134 sareng CVE-2021-39135 khusus pikeun modul @npmcli / arborist. Masalah kahiji muncul ngan dina sistem anu henteu ngabédakeun kasus karakter dina sistem file (macOS sareng Windows), sareng ngamungkinkeun anjeun nyerat file kana bagian anu sawenang tina sistem file ku netepkeun dua modul '"foo" diantara katergantungan. : "file:/some/path" 'jeung' FOO: "file:foo.tgz"', ngolahna bakal ngakibatkeun ngahapus eusi diréktori / some/path jeung nulis eusi foo.tgz ka dinya. Masalah kadua ngamungkinkeun file bisa overwritten ngaliwatan manipulasi link simbolis.

Kerentanan direngsekeun dina Node.js ngarilis 12.22.6 sareng 14.17.6, npm CLI 6.14.15 sareng 7.21.0, sareng pakét tar individu ngaluarkeun 4.4.19, 5.0.11, sareng 6.1.10. Saatos nampi inpormasi ngeunaan masalah éta salaku bagian tina inisiatif "bug bounty", GitHub mayar peneliti $ 14500 sareng nyeken eusi gudang, anu henteu ngungkabkeun usaha pikeun ngamangpaatkeun kerentanan. Pikeun ngajagaan tina masalah ieu, GitHub ogé ngalarang nyebarkeun bungkusan NPM anu kalebet tautan simbolis, tautan keras, sareng jalur mutlak ka gudang.

sumber: opennet.ru

Tambahkeun komentar