Ett oupptäckt bugg från 7 år sedan tillåter eskalering av privilegier med polkit

Kevin Backhouse (en säkerhetsforskare) delad För några dagar sedan på GitHub-bloggen noterades att Jag hade hittat en bugg i polkit-tjänsten associerad med systemd (en vanlig Linux-system- och servicehanterarkomponent), med vilken den sju år gamla sårbarheten får utföra en eskalering av privilegier som har lurat i olika Linux-distributioner och som patchades förra veckan i en samordnad release.

Polkit är en verktygslåda på applikationsnivå för att definiera och hantera policyer som gör det möjligt för oprivilegierade processer prata med privilegierade processer, den är installerad som standard på olika Linux-distributioner. Sårbarheten introducerades i version 0.113 för sju år sedan ( commit bfa5036 ) och åtgärdades den 3 juni efter att säkerhetsforskaren Kevin Backhouse nyligen avslöjat det.

Som medlem i GitHub Security Lab är mitt jobb att hjälpa till att förbättra säkerheten för programvara med öppen källkod genom att hitta och rapportera sårbarheter. För några veckor sedan hittade jag en sårbarhet för eskalering av privilegier i polkit. Jag samordnade avslöjandet av sårbarheten med polkit-underhållarna och med Red Hats säkerhetsteam. Offentligt släppt, korrigeringen släpptes den 3 juni 2021 och tilldelades CVE-2021-3560

"Varje Linux-system som använder en sårbar version av polkit är potentiellt utsatt för attacker som utnyttjar CVE-2021-3560-felet," säger Backhouse vidare. säger att felet är förvånansvärt lätt att utnyttja, eftersom det bara krävde ett fåtal kommandon med standardterminalverktyg som bash, kill och dbus-send.

"Sårbarheten utlöses genom att starta ett dbus-send-kommando, men avbryta det medan polkit fortfarande bearbetar begäran," förklarade Backhouse.

Backhouse har lagt upp en video PoC för en attack som utnyttjar denna sårbarhet genom att visa att den är lätt att aktivera.

"Sårbarheten tillåter en oprivilegierad lokal användare att få ett rotskal på systemet. Det är lätt att utnyttja med några vanliga kommandoradsverktyg, som du kan se i den här korta videon”, skrev experten i ett blogginlägg.

Genom att döda dbus-send (ett kommunikationskommando mellan processer), mitt i en autentiseringsbegäran orsakar ett fel som uppstår från att polkit begär UID för en anslutning som inte längre existerar (eftersom anslutningen avbröts).

"Faktum är att polkit misshandlar felet på ett särskilt olyckligt sätt: istället för att avvisa begäran behandlar den den som om den kom från en process med UID 0", förklarar Backhouse. "Med andra ord, den godkänner omedelbart begäran eftersom den tror att begäran kommer från en rotprocess."

Detta händer inte hela tiden, eftersom polkits UID-fråga till dbus-daemon inträffar flera gånger i olika kodvägar. Vanligtvis hanterar dessa kodsökvägar felet korrekt, sa Backhouse, men en kodsökväg är sårbar, och om frånkopplingen sker när den kodsökvägen är aktiv, är det då behörighetshöjningen inträffar. Allt är en tidsfråga, som varierar på oförutsägbara sätt eftersom flera processer är inblandade.

Dessutom, forskaren publicerade följande tabell som innehåller listan över för närvarande sårbara distributioner:

DISTRIBUTION SÅRBAR?
RHEL 7 Nej
RHEL 8 Ja
Fedora 20 (eller tidigare) Nej
Fedora 21 (eller senare) Ja
Debian 10 ("buster") Nej
debiantestning Ja
ubuntu 18.04 Nej
ubuntu 20.04 Ja

Linux-distributioner som har polkit version 0.113 eller senare installerad, såsom Debian (instabil gren), RHEL 8, Fedora 21 och högre, och Ubuntu 20.04, påverkas.

Den intermittenta naturen hos buggen, spekulerar Backhouse, är anledningen till att den förblev oupptäckt i sju år.

"CVE-2021-3560 tillåter en oprivilegierad lokal angripare att få root-privilegier," sa Backhouse. "Det är väldigt enkelt och snabbt att utnyttja, så det är viktigt att du uppdaterar dina Linux-installationer så snart som möjligt."

Slutligen Om du är intresserad av att veta mer om det, du kan kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.