Ubehagelig Linux systemd rodsikkerhedsfejl afsløret og patched

0
146

 Steven J. Vaughan-Nichols

Af Steven J. Vaughan-Nichols til Linux og Open Source | 16. juni 2021 – 11:41 GMT (12:41 BST) | Emne: Sikkerhed

Den gode nyhed er, at den syv år gamle sikkerhedsfejl i Linux-systemets polkit, der bruges i mange Linux-distroer, er blevet patched. Den dårlige nyhed er, at den nogensinde var der i første omgang. Polkit, som systemd bruger i stedet for sudo, gør det muligt for uautoriserede brugere at køre privilegerede processer, som de ellers ikke kunne køre. Det viste sig, at du også kunne misbruge polkit for at få rootadgang til et system.

Kan du sige “Ow!”?

Styrken til at få fat i root-privilegier er det ultimative ondskab i Unix- og Linux-systemer. Kevin Backhouse, et medlem af GitHub Security Lab, fandt sikkerhedshullet i polkit i løbet af sine opgaver. Han afslørede det for polkit-vedligeholdere og Red Hats sikkerhedsteam. Derefter, da en rettelse blev frigivet den 3. juni 2021, blev den offentliggjort som CVE-2021-3560.

Backhouse fandt, at en uautoriseret lokal bruger let kunne få en rodskal på et system ved hjælp af et par standardskalværktøjer som bash, kill og dbus-send. Mærkeligt nok, mens bugten er ret gammel, begyndte den først for nylig at sende i de mest populære Linux-distributioner. For eksempel, hvis du kører Red Hat Enterprise Linux (RHEL) 7; Debian 10; eller Ubuntu 18.04; du er usårlig over for dette sikkerhedshul. Men hvis du kører den nyere RHEL 8, testes Debian; eller Ubuntu 20.04, kan du blive angrebet med det.

Hvorfor? Fordi denne buggy-kode ikke var blevet brugt i de fleste Linux-distroer. For nylig blev den sårbare kode imidlertid bagportet til forsendelsesversioner af polkit. Et gammelt sikkerhedshul fik nyt liv.

Det er ikke den eneste grund til, at denne bug skjulte i almindeligt syn i så lang tid. Backhouse forklarede, at sikkerhedshullet ikke udløses hver gang du kører programmer, der kan kalde det. Hvorfor? Det viser sig, at polkit beder dbus-dæmon om UID [bruger-id] for anmodningsprocessen flere gange på forskellige kodestier. De fleste af disse kodestier håndterer fejlen korrekt, men en af ​​dem gør det ikke. Hvis du dræber dbus-send-kommandoen tidligt, håndteres den af ​​en af ​​de rigtige kodestier, og anmodningen afvises. For at udløse den sårbare kodesti skal du afbryde forbindelsen på det rigtige tidspunkt. Og fordi der er flere processer involveret, varierer timingen for det “rigtige øjeblik” fra en kørsel til den næste. Derfor tager det normalt et par forsøg for, at udnyttelsen lykkes. Jeg gætter på, at det også er grunden til, at fejlen ikke tidligere blev opdaget.

Det er en snigende lille ting.

Men når Backhouse sagde, at det ikke altid kan udnyttes, er det ingen grund til ikke at bekymre sig om det. Du kan nemt skrive et script, der helt sikkert aktiverer det efter et par minutters forsøg. Red Hat advarer “Den største trussel fra denne sårbarhed er datafortrolighed og integritet samt systemtilgængelighed.”

Derfor, som Backhouse påpeger, er det “meget simpelt og hurtigt at udnytte … det er vigtigt, at du opdaterer dine Linux-installationer så hurtigt som muligt.”

Så ved du hvad du skal gøre nu, ikke? Gå på arbejde med patchning: Du vil gerne opgradere polkit til version 0.119 eller nyere.

Relaterede historier:

CloudLinux frigiver UChecker-sikkerhedsværktøj til Linux-servereLinux og open source-samfund stiger til Bidens cybersikkerhedsudfordring
Linux-netværk med høj sværhedsgrad sikkerhedshuller fundet, faste

Relaterede emner:

Enterprise Software Security TV Data Management CXO Data Centers  Steven J. Vaughan-Nichols

Af Steven J. Vaughan-Nichols til Linux og Open Source | 16. juni 2021 – 11:41 GMT (12:41 BST) | Emne: Sikkerhed