SÄrbarheter i swhkd, ett snabbkommandohanterare för Wayland

En swhkd (Simple Wayland HotKey Daemon) har en serie sÄrbarheter upptÀckts, orsakade av bristande hantering av temporÀra filer, kommandoradsparametrar och unix-sockets. Programmet Àr skrivet i Rust och hanterar tryckningar av snabbtangenter i miljöer baserade pÄ Wayland-protokollet (kompatibelt pÄ konfigurationsfilnivÄ med processen sxhkd, som anvÀnds i miljöer baserade pÄ X11).

Paketet innehÄller en oprivilegierad process, swhks, som utför ÄtgÀrder för snabbtangenter och en bakgrundsprocess, swhkd, som körs med root-rÀttigheter och interagerar med inmatningsenheter pÄ API-nivÄ via uinput. För att organisera samverkan mellan swhks och swhkd anvÀnds en Unix-socket. Genom Polkit-regler ges varje lokal anvÀndare möjlighet att starta processen /usr/bin/swhkd med root-rÀttigheter och överföra valfria parametrar till den.

UpptÀckta sÄrbarheter:

  • CVE-2022-27815 – sparande av PID för processen i en fil med ett förutsĂ€gbart namn och i en katalog som Ă€r skrivbar av andra anvĂ€ndare (/tmp/swhkd.pid). Varje anvĂ€ndare kan skapa filen /tmp/swhkd.pid och placera PID:n för en befintlig process dĂ€r, vilket leder till att swhkd inte kan startas. I avsaknad av skydd mot skapande av symboliska lĂ€nkar i /tmp kan sĂ„rbarheten anvĂ€ndas för att skapa eller skriva över filer i vilken systemkatalog som helst (PID skrivs till filen) eller för att bestĂ€mma innehĂ„llet i vilken fil som helst i systemet (swhkd skriver ut allt innehĂ„ll frĂ„n PID-filen till stdout). Det Ă€r anmĂ€rkningsvĂ€rt att i den utfĂ€rdade korrigeringen har PID-filen flyttats frĂ„n katalogen /run till katalogen /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), dĂ€r den inte heller borde vara.
  • CVE-2022-27814 – genom att manipulera kommandoradsparametern "-c", som anvĂ€nds för att ange konfigurationsfilen, kan man faststĂ€lla existensen av vilken fil som helst i systemet. Till exempel, för att kontrollera /root/.somefile kan man köra "pkexec /usr/bin/swhkd -d -c /root/.somefile" och om filen saknas kommer felmeddelandet "/root/.somefile doesn’t exist" att visas. Liksom i fallet med den första sĂ„rbarheten vĂ€cker korrigeringen av problemet förundran – lösningen innebĂ€r att den externa verktygen "cat" nu anvĂ€nds för att lĂ€sa konfigurationsfilen (‘Command::new(“/bin/cat”).arg(path).output()’).
  • CVE-2022-27819 – problemet Ă€r ocksĂ„ relaterat till anvĂ€ndningen av alternativet "-c", enligt vilket konfigurationsfilen laddas helt och parseras utan att kontrollera storlek och typ av fil. Till exempel kan ett blockenhet anges vid start för att orsaka ett tjĂ€nsteavbrott genom att utarma ledigt minne och skapa parasitĂ€r in- och utmatning ("pkexec /usr/bin/swhkd -d -c /dev/sda") eller en teckenhet som ger en oĂ€ndlig datastream. Problemet har Ă„tgĂ€rdats genom att ta bort privilegier innan filen öppnas, men Ă„tgĂ€rden visade sig inte vara fullstĂ€ndig, eftersom endast anvĂ€ndar-ID (UID) Ă„terstĂ€lls, medan grupp-ID (GID) förblir detsamma.
  • CVE-2022-27818 – för att skapa en Unix-socket anvĂ€nds filen /tmp/swhkd.sock som skapas i en offentligt skrivbar katalog, vilket orsakar liknande problem som den första sĂ„rbarheten (alla anvĂ€ndare kan skapa /tmp/swhkd.sock och generera eller fĂ„nga tangentbordshĂ€ndelser).
  • CVE-2022-27817 – inmatningshĂ€ndelser tas emot frĂ„n alla enheter och i alla sessioner, dvs. en anvĂ€ndare frĂ„n en annan Wayland-session eller frĂ„n konsolen kan fĂ„nga hĂ€ndelser nĂ€r andra anvĂ€ndare trycker pĂ„ genvĂ€gar.
  • CVE-2022-27816 – processen swhks, liksom swhkd, anvĂ€nder PID-filen /tmp/swhks.pid i den offentligt skrivbara katalogen /tmp. Problemet Ă€r liknande den första sĂ„rbarheten, men Ă€r inte lika farligt, eftersom swhks körs under en icke-privilegierad anvĂ€ndare.

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