Sårbarhed i pakkehåndteringsværktøjet Guix, som tillader fjernudførelse af kode i systemet.

Der pakkeadministrator Guix har identificeret sårbarheder (ingen CVE tildelt) i implementeringen af den interne kommando «guix substitute», som automatisk kaldes af baggrundsprocessen guix-daemon ved installation af pakker. Kommandoen bruges til at hente allerede samlede binære pakker fra eksterne servere med kontrol af deres integritet ved hjælp af digitale signaturer. Den farligste sårbarhed muliggør fjernudførelse af kode på brugerens system med de rettigheder, som baggrundsprocessen guix-daemon kører med.

Problemet påvirker alle konfigurationer med processen guix-daemon, uanset om den kører med root-rettigheder eller som en ikke-privilegeret bruger. For at udnytte sårbarheden kræves blot et forsøg på at downloade færdige binære pakker fra server, som kontrolleres af angriberen. Den ondsindede server behøver ikke at være eksplicit valgt eller angivet i brugerens indstillinger — det kan bestemmes ved hjælp af optionen «—discover», som tillader udskiftning af serveren under en MITM-angreb. I konfigurationer, hvor guix-daemon kører med forhøjede privilegier, kan en lokal bruger udføre et angreb, hvis der er mulighed for at oprette forbindelse til baggrundsprocessen via en Unix-socket (som som standard er tilgængelig for alle brugere).

Sårbarheden er til stede i håndteringen af «restore-file», der anvendes til at udpakke, mens pakken hentes, uden at vente på, at den er fuldt downloadet og verificeret via den digitale signatur. Problemet skyldes manglende kontrol af tilstedeværelsen af tegnene «.», «\/» og «..» i filstierne i det udlagte arkiv. Ved at injicere uacceptable filnavne i arkivet kan angriberen opnå skrivning af en vilkårlig fil i enhver del af filsystemet, alt efter de rettigheder som baggrundsprocessen guix-daemon kører med.

For at få sit eget kode til at køre på systemet, kan man for eksempel tilføje et autostart-script som «~\/ .bashrc» eller «~\/ .profile», eller ændre filen «~\/ .ssh\/authorized_keys» med SSH-nøgler. Hvis guix-daemon kører under root-brugeren i et flerbruger-system, kan angriberen overskrive en fil med adgangskoder eller systemscripts.

Muligheden for at oprette falske servere for distribution af skadelige pakker skyldes, at proceduren for indlæsning af metadata (narinfo) om tilgængelige binære pakker (fetch-narinfos) ikke udførte kontrol af serverens certifikat, men stolede på, at størstedelen af metadataene blev bekræftet med en digital signatur. Det viste sig, at signaturen ikke dækkede URL'en for download af pakken, hvilket gjorde det muligt at ændre den uden at krænke integriteten af metadataene. I sidste ende ville den falske pakke blive afvist på grund af, at dens indhold ikke bestod hash-kontrollen bekræftet med den digitale signatur, men denne kontrol blev udført efter dekomprimeringsfasen, hvor der opstod problemer med specialtegn i filnavne.

Udover kommandoen «guix substitute» er den sårbare håndtering «restore-file» involveret i arbejdet med kommandoerne «guix offload», «guix archive —extract» og «guix challenge», gennem hvilke sårbarheden også kan udnyttes. Som en midlertidig løsning til at blokere sårbarheden anbefales det at angive indstillingen «—no-substitutes» eksplicit i alle guix-kommandoer. Rettelsen af sårbarheden er blevet accepteret i Guix-kodebasen. Brugerne anbefales straks at installere de opdateringer, som udviklerne har udarbejdet, af guix og guix-daemon.

Ud over den nævnte problematik i Guix er der blevet rettet yderligere tre sårbarheder:

  • Muligheden for at ændre binære pakker på grund af manglende kontrol af overensstemmelse mellem den anmodede pakke og de returnerede metadata i håndteringen fetch-narinfos. Sårbarheden kan udnyttes til at levere en forældet version af den anmodede pakke, som indeholder sårbarheder.
  • Bestemmelsen af indholdet af den første linje af vilkårlige filer i systemet gennem en anmodning sendt af en lokal bruger med URI «file://» («—substitute-urls file:///etc/shadow»). Hvis guix-daemon køres med root-rettigheder, vil den læse den anmodede fil, afgøre at den ikke er metadata, og returnere en fejl, hvori der vil blive nævnt den linje, der ikke kunne tolkes.
  • Angivelsen af et særskilt udformet navn på et eksternt arkiv («..\/..\/..\/..\/newfile») ved udførelse af kommandoerne «guix pull» og «guix time-machine» muliggør at skrive data med information om commit i en vilkårlig eksisterende fil i filsystemet, hvis dens indhold ligner en liste over strenge på sproget Scheme. Sårbarheden kan anvendes til DoS-angreb, men det er ikke udelukket, at man gennem snedige manipulationer med pseudo-FS \/proc kan opnå mere farlige manipulationer med systemet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster