Paketihaldur Guixis avastati haavatavused (CVE-d ei ole mÀÀratud) sisetöötluskomandi «guix substitute» teostuses, mille kutsub automaatselt esile taustaprotsess guix-daemon pakettide installimise operatsioonide kĂ€igus. Komandat kasutatakse juba kokku pandud binaarpaketide allalaadimiseks vĂ€listelt serveritelt, kontrollides nende terviklikkust digitaalallkirja abil. KĂ”ige ohtlikum haavatavus vĂ”imaldab kaugtasandilt koodi tĂ€itmist kasutaja sĂŒsteemis Ă”igustes, milles taustaprotsess guix-daemon töötab.
Probleem puudutab kĂ”iki konfiguratsioone, kus töötab guix-daemon, olenemata sellest, kas see kĂ€ivitatakse root-Ă”igustes vĂ”i madala prioriteediga kasutaja all. Haavatavuse Ă€rakasutamiseks piisab igasugusest katsest alla laadida valmis binaarpakette, serverilt, mis on rĂŒndaja kontrolli all. Samuti ei pea pahavara tingimata olema selgelt valitud vĂ”i mÀÀratud kasutaja seadetes â see vĂ”ib mÀÀrata valiku ââdiscoverâ abil, mis vĂ”imaldab serveri asendamist MITM-rĂŒnnaku kĂ€igus. Konfiguratsioonides, kus guix-daemon töötab kĂ”rgendatud Ă”igustes, vĂ”ib kohalikke kasutajaid rĂŒnnata, kui on vĂ”imalik ĂŒhenduda taustaprotsessiga Unix-soketi kaudu (mis on vaikimisi kĂ”igile kasutajatele saadaval). server Haavatavus on olemas «restore-file» töötlejas, mida kasutatakse paketi allalaadimise ajal lahtipakkimiseks, ootamata faili tĂ€ielikku allalaadimist ja allalaaditud arhiivi digitaalallkirja verifitseerimist. Probleem tuleneb kontrolli puudumisest, kas arhiivis olevates failiteedes on sĂŒmboleid «.», «/» ja «..». RĂŒndaja saab vigaste failinimede kaudu arhivisse asendusi lisades saavutada suvalise faili kirjutamise igasse failisĂŒsteemi piirkonda, kuivĂ”rd lubavad Ă”igused, milles taustaprotsess guix-daemon töötab.
Oma koodi tĂ€itmiseks sĂŒsteemis, nĂ€iteks, saab lisada automaatselt kĂ€ivitava skripti, nagu «~/.bashrc» vĂ”i «~/.profile», vĂ”i muuta faili «~/.ssh/authorized_keys» SSH vĂ”tmetega. Kui guix-daemon töötatakse mitme kasutajaga sĂŒsteemis root-kasutaja all, vĂ”ib rĂŒndaja ĂŒle kirjutada paroolifaili vĂ”i sĂŒsteemiskripte.
SĂŒsteemi koodi kĂ€ivitamiseks saab nĂ€iteks lisada automaatselt kĂ€ivitatava skripti, nagu «~/.bashrc» vĂ”i ~/.profile, vĂ”i muuta faili ~/.ssh/authorized_keys SSH vĂ”tmete jaoks. Kui mitme kasutajaga sĂŒsteemis guix-daemon töötab root kasutajana, vĂ”ib rĂŒndaja ĂŒle kirjutada paroolifaili vĂ”i sĂŒsteemis skripte.
Tehniline vÔimalus luua valetserversid pahatahtlike paketide edastamiseks tulenes sellest, et metaandmete (narinfo) laadimise protseduur saadaolevate binaarsete pakettide (fetch-narinfos) kohta ei kontrollinud serveri sertifikaati, toetudes sellele, et peamine osa metaandmetest on allkirjastatud digitaalselt. Selgus, et allkiri ei hÔlmanud paketi laadimise URL-i, mis vÔimaldas selle asendada, rikkumata metaandmete terviklikkust. LÔppkokkuvÔttes oleks vale pakett kÔrvaldada, kuna see ei vastanud selle sisu hash-kontrollile, mis oli digitaalselt allkirjastatud, kuid see kontroll toimus pÀrast lahtipakkimise etappi, kus ilmnes probleem erimÀrkide kasutamisel failinimedes.
Lisaks kĂ€sule âguix substituteâ on haavatav töötlus ârestore-fileâ kaasatud kĂ€skude âguix offloadâ, âguix archive âextractâ ja âguix challengeâ tööle, mille kaudu on samuti vĂ”imalik haavatavust Ă€ra kasutada. Ăks vĂ”imalus haavatavuse blokeerimiseks on selgelt mÀÀrata valik ââno-substitutesâ kĂ”igis guix-i kĂ€skudes. Haavatavuse parandamine on lisatud Guixi koodibaasi. Kasutajatele soovitatakse viivitamatult installida arendajate loodud guix ja guix-daemon uuendused.
Peale tuvastatud probleemi on Guixis lahendatud veel kolm haavatavust:
- VÔimalus asendada binaarpakette seetÔttu, et puudub kontroll, kas taotletud pakett vastab tagastatud metaandmetele töötluses fetch-narinfos. Haavatavust saab kasutada vananenud versiooni tagastamiseks, mis sisaldab haavatavusi.
- SoumisesĂŒsteemi ĂŒkskĂ”iksete failide esimese rea sisu mÀÀramine kohaliku kasutaja esitatud pĂ€ringu kaudu URI âfile://â (ââsubstitute-urls file:///etc/shadowâ). Kui guix-daemonit kĂ€itatakse root-Ă”igustega, loeb see taotletud faili, mÀÀrab, et see ei ole metaandmed ja genereerib vea, mille tekstis mainitakse rida, mida ei Ă”nnestunud tĂ”lgendada.
- Spetsiaalselt vormindatud vĂ€lisrepo nime («..../..../..../..../newfile») nĂ€itamine kĂ€skude "guix pull" ja "guix time-machine" tĂ€itmisel vĂ”imaldab salvestada andmeid commitâi teabe kohta suvalisse olemasolevasse faili failisĂŒsteemis, kui selle sisu meenutab Scheme'i keeles ridade loendit. Haavatavust saab kasutada DoS-rĂŒnnakute jaoks, kuid ei saa vĂ€listada, et tarkade manipuleerimistega pseudosĂŒsteemi "/proc" kaudu on vĂ”imalik saavutada sĂŒsteemi veel ohtlikumaid manipulatsioone.
Allikas: opennet.ru
