Në menaxherin e paketave Guix janë identifikuar vulnerabilitete (CVE nuk janë emëruar) në zbatimin e komandës së brendshme "guix substitute", e cila thirret automatikisht nga procesi në background guix-daemon gjatë operacioneve të instalimit të paketave. Kjo komandë përdoret për të shkarkuar paketa të gatshme binarë nga servera të jashtëm me verifikimin e integritetit të tyre përmes nënshkrimit digjital. Vulnerabiliteti më i rrezikshëm lejon ekzekutimin e kodit nga distanca në sistemin e përdoruesit me privilegjet nën të cilat ekzekutohet procesi në background guix-daemon.
Problemi ndikon tĂ« gjitha konfigurimet me procesin guix-daemon, pa marrĂ« parasysh nĂ«se ai ekzekutohet me privilegje root apo nĂ«n njĂ« pĂ«rdorues jo tĂ« privilegjuar. PĂ«r tĂ« shfrytĂ«zuar vulnerabilitetin, mjafton çdo pĂ«rpjekje pĂ«r tĂ« shkarkuar paketa binarĂ« tĂ« gatshme nga serverit, nĂ«n kontrollin e sulmuesit. NĂ« kĂ«tĂ« rast, malware server nuk Ă«shtĂ« domosdoshmĂ«risht i zgjedhur ose i specifikuar nĂ« cilĂ«simet e pĂ«rdoruesit â mund tĂ« pĂ«rcaktohet pĂ«rmes opsionit «âdiscover», i cili lejon zĂ«vendĂ«simin e serverit gjatĂ« njĂ« sulmi MITM. NĂ« konfigurimet ku guix-daemon Ă«shtĂ« aktivizuar me privilegje tĂ« larta, njĂ« pĂ«rdorues lokal mund tĂ« kryejĂ« njĂ« sulm kur ka mundĂ«sinĂ« tĂ« lidhet me procesin nĂ« sfond pĂ«rmes njĂ« Unix-socket (i cili Ă«shtĂ« i disponueshĂ«m pĂ«r tĂ« gjithĂ« pĂ«rdoruesit si parazgjedhje).
Vulnerabiliteti është i pranishëm në trajtuesin «restore-file», i përdorur për shpërndarjen gjatë ngarkesës së paketës, pa pritur ngarkimin e plotë dhe verifikimin e arkivit të ngarkuar përmes nënshkrimit digjital. Problemi shkaktohet nga mungesa e kontrollit për prani të simboleve «.», «/» dhe «..» në rrugët e skedarëve të vendosura në arkiv. Përmes zëvendësimit të emrave të skedarëve të papërshtatshëm në arkiv, sulmuesi mund të arrijë të shkruajë një skedare të rastësishme në çdo zonë të sistemit të skedarëve, sa i lejojnë të drejtat nën të cilat funksionon procesi në sfond guix-daemon.
Për ta organizuar ekzekutimin e kodit tuaj në sistem, për shembull, mund të shtoni një skenar të automatik nga fillimi, si «~/.bashrc» ose ~/.profile, ose të ndryshoni skedarin ~/.ssh/authorized_keys me çelësat SSH. Nëse në një sistem shumëpërdorues guix-daemon ekzekutohet nën përdoruesin root, sulmuesi mund ta rishkruajë skedarin me fjalëkalime ose skriptet e sistemit.
Mundësia për të krijuar serverë të rremë për shpërndarjen e paketave të dëmshme është shkaktuar nga fakti që procedura e shkarkimit të metadatat (narinfo) për paketat binare të disponueshme (fetch-narinfos) nuk kryente verifikimin e certifikatës së serverit, duke u mbështetur në atë që shumica e metadatave kishte një nënshkrim digjital. Siç u zbulua, nënshkrimi nuk përfshinte URL-në për shkarkimin e paketës, duke lejuar ndërrimin e saj pa shkelur integritetin e metadatave. Në fund, paketa e rreme do të refuzohej për shkak të dështimit në verifikimin e përmbajtjes së saj sipas hash-it të nënshkruar digjtalisht, por kjo verifikim bëhej pas fazës së çpaketimit, në të cilën shfaqej problemi me karakteret speciale në emrat e skedarëve.
PĂ«rveç komandĂ«s «guix substitute», trajtuesi i cenueshĂ«m «restore-file» Ă«shtĂ« i angazhuar nĂ« punĂ«n e komandave «guix offload», «guix archive âextract» dhe «guix challenge», pĂ«rmes tĂ« cilave gjithashtu mund tĂ« shfrytĂ«zohet cenueshmĂ«ria. Si njĂ« zgjidhje pĂ«r tĂ« bllokuar cenueshmĂ«rinĂ«, sugjerohet qĂ« tĂ« specifikohet qartĂ« opsioni «âno-substitutes» nĂ« tĂ« gjitha komandat guix. Korrigjimi i cenueshmĂ«risĂ« Ă«shtĂ« pranuar nĂ« bazĂ«n e kodit tĂ« Guix. PĂ«rdoruesit rekomandohet tĂ« instalojnĂ« menjĂ«herĂ« azhurnimet e krijuara nga zhvilluesit guix dhe guix-daemon.
Përveç problemit të përmendur në Guix, janë eliminuar gjithashtu tri cenueshmëri të tjera:
- Mundësia për të zëvendësuar paketat binarë për shkak të mungesës së verifikimit të përshtatshmërisë së paketës së kërkuar me metadatët e kthyer në trajtuesin fetch-narinfos. Cenuçhmëria mund të përdoret për të ofruar një version të vjetëruar të paketës së kërkuar, që përmban cenueshmëri.
- Definition of the content of the first line of arbitrary files in the system by submitting a request with the URI 'file://' ('âsubstitute-urls file://etc/shadow') by a local user. If the guix-daemon is running with root privileges, it will read the requested file, determine that it is not metadata, and output an error message mentioning the line that could not be parsed.
- Specifying a specially formatted name for the external repository ('../../../newfile') when executing the 'guix pull' and 'guix time-machine' commands allows recording data with commit information in any existing file in the filesystem, provided its content resembles a list of lines in the Scheme language. This vulnerability can be used for DoS attacks, but it is also possible that clever manipulations with the pseudo-FS /proc could lead to more dangerous system manipulations.
Burimi: opennet.ru
