SÄrbarhet i pakethanteraren Guix som möjliggör fjÀrrkörning av kod i systemet

SÄrbarheter har identifierats i pakethanteraren Guix (CVE har inte tilldelats) i implementationen av det interna kommandot "guix substitute", som automatiskt anropas av bakgrundsprocessen guix-daemon vid installation av paket. Kommandot anvÀnds för att hÀmta redan sammanstÀllda binÀrpaket frÄn externa servrar och verifiera deras integritet med digital signatur. Den mest allvarliga sÄrbarheten möjliggör fjÀrrkörning av kod pÄ anvÀndarens system med de rÀttigheter som bakgrundsprocessen guix-daemon körs med.

Problemet berör alla konfigurationer med processen guix-daemon, oavsett om den körs med root-rĂ€ttigheter eller av en icke-privilegierad anvĂ€ndare. För att utnyttja sĂ„rbarheten rĂ€cker det med att försöka hĂ€mta fĂ€rdiga binĂ€rpaket frĂ„n servern, som kontrolleras av angriparen. Den skadliga server behöver inte nödvĂ€ndigtvis vĂ€ljas eller anges uttryckligen av anvĂ€ndarens instĂ€llningar — den kan definieras med alternativet “—discover”, vilket möjliggör serverbyte under en MITM-attack. I konfigurationer dĂ€r guix-daemon körs med höga privilegier kan en lokal anvĂ€ndare utföra en attack om de kan ansluta till bakgrundsprocessen via Unix-socket (som standard tillgĂ€nglig för alla anvĂ€ndare).

SÄrbarheten finns i hanteraren "restore-file", som anvÀnds för att packa upp vid nedladdning av paketet, utan att vÀnta pÄ att det Àr helt nedladdat och verifierat med digital signatur. Problemet orsakas av bristen pÄ kontroll av tecknen ".", "\/" och ".." i filvÀgarna i arkivet. Genom att substituera arkivet med ogiltiga filnamn kan en angripare Ästadkomma skrivning av en godtycklig fil till valfri del av filsystemet, beroende pÄ de rÀttigheter som bakgrundsprocessen guix-daemon körs med.

För att organisera körningen av sin egen kod i systemet kan man till exempel lÀgga till ett autostart-skript, som "~\/ .bashrc" eller "~\/ .profile", eller Àndra filen "~\/ .ssh\/authorized_keys" med SSH-nycklar. Om guix-daemon körs under anvÀndaren root i ett flermiljösystem kan angriparen skriva över filen med lösenord eller systemskript.

Möjligheten att skapa falska servrar för spridning av skadliga paket orsakades av att proceduren för att ladda ner metadata (narinfo) om tillgÀngliga binÀrpaket (fetch-narinfos) inte kontrollerade serverns certifikat, utan förlitade sig pÄ att huvuddelen av metadata signerades med en digital signatur. Det visade sig att signaturen inte omfattade URL:en för nedladdning av paketet, vilket medgav att den kunde bytas ut utan att bryta mot metadata-integriteten. I slutÀndan skulle det falska paketet ha avvisats pÄ grund av att det inte passerade kontrollen av dess innehÄll enligt hash vÀrdet, som var signerat med den digitala signaturen, men denna kontroll genomfördes efter avpackningssteget, dÀr problemet med specialtecken i filnamnen uppstod.

Förutom kommandot "guix substitute" Ă€r den sĂ„rbara hanteraren "restore-file" involverad i kommandona "guix offload", "guix archive —extract" och "guix challenge", genom vilka sĂ„rbarheten ocksĂ„ kan utnyttjas. Som en tillfĂ€llig lösning för att blockera sĂ„rbarheten föreslĂ„s det att uttryckligen ange alternativet "—no-substitutes" i alla guix-kommandon. ÅtgĂ€rden av sĂ„rbarheten har antagits i kodbasen för Guix. AnvĂ€ndare rekommenderas att omedelbart installera de uppdateringar som utvecklarna har skapat för guix och guix-daemon.

Förutom det nÀmnda problemet har tre andra sÄrbarheter ÄtgÀrdats i Guix:

  • Möjligheten att byta ut binĂ€rpaket pĂ„ grund av avsaknaden av en kontroll av överensstĂ€mmelsen mellan det begĂ€rda paketet och de Ă„terlĂ€mnade metadata i hanteraren fetch-narinfos. SĂ„rbarheten kan anvĂ€ndas för att leverera en förĂ„ldrad version av det begĂ€rda paketet, som innehĂ„ller sĂ€kerhetsbrister.
  • BestĂ€mning av innehĂ„llet i den första raden av godtyckliga filer i systemet genom att en lokal anvĂ€ndare skickar en begĂ€ran med URI "file:///" ("—substitute-urls file:///etc/shadow"). Om guix-daemon körs med root-rĂ€ttigheter, kommer den att lĂ€sa den begĂ€rda filen, faststĂ€lla att den inte Ă€r metadata och ge ett felmeddelande dĂ€r den rad som inte kunde tolkas nĂ€mns.
  • Att ange ett sĂ€rskilt formaterat namn pĂ„ det externa arkivet ("..\/..\/..\/..\/newfile") nĂ€r man utför kommandona "guix pull" och "guix time-machine" gör det möjligt att skriva data med information om commiten till en valfri befintlig fil i filsystemet, om dess innehĂ„ll liknar en lista av rader i sprĂ„k som Scheme. SĂ„rbarheten kan anvĂ€ndas för DoS-attacker, men det Ă€r inte uteslutet att man genom listiga manipulationer med pseudo-FS /proc kan uppnĂ„ mer farliga manipulationer av systemet.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster