Kerentanan ing NPM sing ndadΓ©kakΓ© kanggo nimpa file ing sistem

GitHub wis ngumumake rincian pitung kerentanan ing paket tar lan @npmcli/arborist, sing nyedhiyakake fungsi kanggo nggarap arsip tar lan ngitung wit dependensi ing Node.js. Kerentanan ngidini, nalika mbongkar arsip sing dirancang khusus, kanggo nimpa file ing njaba direktori root ing ngendi unpacking ditindakake, nganti hak akses saiki ngidini. Masalah ndadekake iku bisa kanggo ngatur eksekusi kode kasepakatan ing sistem, contone, kanthi nambah printah kanggo ~/.bashrc utawa ~/.profile nalika operasi dileksanakake dening pangguna unprivileged, utawa ngganti file sistem nalika mlaku minangka. oyod.

Bebaya kerentanan tambah akeh amarga kode masalah digunakake ing manajer paket npm nalika nindakake operasi karo paket npm, sing ndadekake bisa ngatur serangan marang pangguna kanthi nempatake paket npm sing dirancang khusus ing repositori, pangolahan. sing bakal nglakokake kode penyerang ing sistem kasebut. Serangan bisa uga sanajan nginstal paket ing mode "-ignore-scripts", sing mateni eksekusi skrip sing dibangun. Secara total, npm mengaruhi papat kerentanan (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 lan CVE-2021-39135) saka pitung. Rong masalah pisanan babagan paket tar, lan loro liyane babagan paket @npmcli/arborist.

Kerentanan sing paling mbebayani, CVE-2021-32804, disebabake yen mbusak path absolut sing ditemtokake ing arsip tar, duplikat karakter "/" diproses kanthi ora bener-mung karakter pisanan sing dicopot, dene liyane ditinggalake. Contone, path "/home/user/.bashrc" bakal diowahi dadi "home/user/.bashrc" lan path "//home/user/.bashrc" kanggo "/home/user/.bashrc". Kerentanan kapindho, CVE-2021-37713, mung katon ing platform Windows lan digandhengake karo reresik dalan relatif sing ora bener sing kalebu karakter drive tanpa watesan ("C: some\path") lan urutan bali menyang direktori sadurunge ( β€œC:../foo”).

Kerentanan CVE-2021-39134 lan CVE-2021-39135 khusus kanggo modul @npmcli/arborist. Masalah pisanan mung katon ing sistem sing ora mbedakake kasus karakter ing sistem file (macOS lan Windows), lan ngidini sampeyan nulis file menyang bagean sewenang-wenang saka sistem file kanthi nemtokake rong modul '"foo" ing antarane dependensi. : "file:/some/path"' lan ' FOO: "file: foo.tgz"', pangolahan kang bakal mimpin kanggo mbusak isi direktori / some/path lan nulis isi saka foo.tgz menyang. Masalah kapindho ngidini file ditimpa liwat manipulasi link simbolis.

Kerentanan ditanggulangi ing Node.js rilis 12.22.6 lan 14.17.6, npm CLI 6.14.15 lan 7.21.0, lan paket tar individu rilis 4.4.19, 5.0.11, lan 6.1.10. Sawise nampa informasi babagan masalah kasebut minangka bagean saka inisiatif "bug bounty", GitHub mbayar peneliti $14500 lan mindhai isi repositori, sing ora nuduhake upaya kanggo ngeksploitasi kerentanan. Kanggo nglindhungi masalah kasebut, GitHub uga nglarang nerbitake paket NPM sing kalebu tautan simbolis, tautan keras, lan jalur mutlak menyang repositori.

Source: opennet.ru

Add a comment