Kwetsbaarheden in swhkd, de sneltoetsbeheerder voor Wayland.

In swhkd (Simple Wayland HotKey Daemon) is een reeks kwetsbaarheden ontdekt, veroorzaakt door onjuist omgaan met tijdelijke bestanden, opdrachtregelparameters en unix-sockets. Het programma is geschreven in de taal Rust en verwerkt het indrukken van sneltoetsen in omgevingen op basis van het Wayland-protocol (vergelijkbaar op het niveau van configuratiebestanden met het sxhkd-proces dat in omgevingen op basis van X11 wordt gebruikt).

Het pakket bevat een niet-privileged proces swhks, dat acties voor de sneltoetsen uitvoert, en een achtergrondproces swhkd, dat met root-rechten draait en interactie heeft met invoerapparaten op API uinput-niveau. Voor de interactie tussen swhks en swhkd wordt een Unix-socket gebruikt. Via Polkit-regels krijgt elke lokale gebruiker de mogelijkheid om het proces /usr/bin/swhkd met root-rechten te starten en willekeurige parameters door te geven.

GeĆÆdentificeerde kwetsbaarheden:

  • CVE-2022-27815 - het opslaan van het PID van een proces in een bestand met een voorspelbare naam en in een directory die door andere gebruikers schrijfbaar is (/tmp/swhkd.pid). Elke gebruiker kan het bestand /tmp/swhkd.pid aanmaken en daar het PID van een bestaand proces in plaatsen, wat zal leiden tot de onmogelijkheid om swhkd te starten. Bij gebrek aan bescherming tegen het aanmaken van symbolische links in /tmp kan de kwetsbaarheid worden gebruikt om bestanden in elke systeemdirectory aan te maken of te overschrijven (er wordt een PID in het bestand weg geschreven) of de inhoud van elk bestand in het systeem te bepalen (swhkd geeft de volledige inhoud van het PID-bestand uit naar stdout). Opmerkelijk is dat in de vrijgegeven patch het PID-bestand niet naar de directory /run is verplaatst, maar naar de directory /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), waar het ook niet thuishoort.
  • CVE-2022-27814 - door de opdrachtregelparameter "-c" te manipuleren, die wordt gebruikt om het configuratiebestand aan te wijzen, kan het bestaan van elk bestand in het systeem worden bepaald. Bijvoorbeeld, om te controleren of /root/.somefile bestaat, kan je "pkexec /usr/bin/swhkd -d -c /root/.somefile" uitvoeren en als het bestand ontbreekt, verschijnt de foutmelding "/root/.somefile doesn’t exist". Net als bij de eerste kwetsbaarheid roept de oplossing van dit probleem verwarring op — de oplossing komt erop neer dat voor het lezen van het configuratiebestand nu een externe tool "cat" wordt aangeroepen (ā€˜Command::new(ā€œ/bin/catā€).arg(path).output()’).
  • CVE-2022-27819 — het probleem is ook gerelateerd aan het gebruik van de optie "-c", waardoor het configuratiebestand volledig wordt geladen en geparsed zonder controle van de grootte en het type bestand. Bijvoorbeeld, om een denial-of-service-aanval te veroorzaken door het uitputten van vrije geheugen en het creĆ«ren van parasitaire invoer/uitvoer, kan bij het starten van het blokk apparaat ("pkexec /usr/bin/swhkd -d -c /dev/sda") of een symbool apparaat dat een ongeĆ«indigde stroom gegevens afgeeft, worden opgegeven. Het probleem is opgelost door de privileges terug te zetten voordat het bestand wordt geopend, maar de oplossing bleek niet compleet, omdat alleen de gebruikers-ID (UID) wordt gereset, terwijl de groeps-ID (GID) hetzelfde blijft.
  • CVE-2022-27818 — voor het creĆ«ren van de Unix-socket wordt het bestand /tmp/swhkd.sock gebruikt, dat wordt aangemaakt in een openbaar beschrijfbare directory, wat leidt tot soortgelijke problemen als de eerste kwetsbaarheid (elke gebruiker kan /tmp/swhkd.sock aanmaken en gebeurtenissen van toetsaanslagen genereren of onderscheppen).
  • CVE-2022-27817 — invoergebeurtenissen worden geaccepteerd van alle apparaten en in alle sessies, dat wil zeggen, een gebruiker uit een andere Wayland-sessie of uit de console kan gebeurtenissen bij het indrukken van sneltoetsen door andere gebruikers onderscheppen.
  • CVE-2022-27816 — het proces swhks, net als swhkd, gebruikt het PID-bestand /tmp/swhks.pid in een openbaar beschrijfbare directory /tmp. Het probleem is vergelijkbaar met de eerste kwetsbaarheid, maar is minder ernstig, aangezien swhks wordt uitgevoerd onder een niet-privileged gebruiker.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster