Vundebleco en NPM kiu kondukas al anstataŭigo de dosieroj en la sistemo

GitHub malkaŝis detalojn pri sep vundeblecoj en la pakaĵoj tar kaj @npmcli/arborist, kiuj provizas funkciojn por labori kun tar-arkivoj kaj kalkuli la dependecan arbon en Node.js. Vundeblecoj ebligas, dum malpakado de speciale desegnita arkivo, anstataŭigi dosierojn ekster la radika dosierujo en kiu la malpakado estas efektivigita, laŭ la nunaj alirrajtoj permesas. La problemoj ebligas organizi la ekzekuton de arbitra kodo en la sistemo, ekzemple, aldonante komandojn al ~/.bashrc aŭ ~/.profile kiam operacio estas farita de senprivilegia uzanto, aŭ anstataŭigante sistemajn dosierojn kiam ĝi funkcias kiel radiko.

La danĝero de vundeblecoj estas pligravigita de la fakto, ke la problema kodo estas uzata en la pakaĵa administranto npm kiam oni faras operaciojn kun npm-pakaĵoj, kio ebligas organizi atakon kontraŭ uzantoj metante speciale desegnitan npm-pakaĵon en la deponejo, la prilaborado. el kiuj ekzekutos la kodon de la atakanto sur la sistemo. La atako eblas eĉ kiam oni instalas pakaĵojn en la reĝimo "-ignore-scripts", kiu malŝaltas la ekzekuton de enkonstruitaj skriptoj. Entute, npm influas kvar vundeblecojn (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 kaj CVE-2021-39135) el sep. La unuaj du problemoj koncernas la tar-pakaĵon, kaj la ceteraj du koncernas la @npmcli/arborist-pakaĵon.

La plej danĝera vundebleco, CVE-2021-32804, estas kaŭzita de tio, ke kiam vi forigas absolutajn vojojn specifitajn en gudro-arkivo, ripetaj "/" signoj estas malĝuste prilaboritaj—nur la unua signo estas forigita, dum la ceteraj restas. Ekzemple, la vojo "/home/user/.bashrc" estos konvertita al "home/user/.bashrc" kaj la vojo "//home/user/.bashrc" al "/home/user/.bashrc". La dua vundebleco, CVE-2021-37713, aperas nur sur la Vindoza platformo kaj rilatas al malĝusta purigado de relativaj vojoj, kiuj inkluzivas senliman stiran signon ("C:some\path") kaj sekvencon por reveni al la antaŭa dosierujo ( “C:../foo”) .

Vundeblaj CVE-2021-39134 kaj CVE-2021-39135 estas specifaj por la modulo @npmcli/arborist. La unua problemo aperas nur ĉe sistemoj, kiuj ne distingas la kazon de signoj en la dosiersistemo (macOS kaj Vindozo), kaj permesas skribi dosierojn al arbitra parto de la dosiersistemo specifante du modulojn '"foo" inter la dependecoj. : "dosiero:/some/path"' kaj ' FOO: "dosiero:foo.tgz"', kies prilaborado kondukos al forigo de la enhavo de la dosierujo /some/path kaj skribo de la enhavo de foo.tgz al ĝi. La dua problemo permesas al dosieroj esti anstataŭigitaj per simbola ligomanipulado.

La vundeblecoj estas solvitaj en Node.js-eldonoj 12.22.6 kaj 14.17.6, npm CLI 6.14.15 kaj 7.21.0, kaj individua gudro-pakaĵo-eldonoj 4.4.19, 5.0.11 kaj 6.1.10. Post ricevi informojn pri la problemo kiel parto de la iniciato "bug bounty", GitHub pagis al la esploristoj $14500 kaj skanis la enhavon de la deponejo, kiu ne malkaŝis provojn ekspluati vundeblecojn. Por protekti kontraŭ ĉi tiuj problemoj, GitHub ankaŭ malpermesis eldoni NPM-pakaĵojn, kiuj inkluzivas simbolajn ligilojn, malmolajn ligilojn kaj absolutajn vojojn al la deponejo.

fonto: opennet.ru

Aldoni komenton