Flera sårbarheter hittades i Waylands snabbkommandon

För några dagar sedan släpptes nyheten om det ett antal sårbarheter hittades i swhkd (Simple Wayland HotKey Daemon) orsakad av felaktig hantering av temporära filer, kommandoradsalternativ och unix-sockets.

Programmet är skrivet i Rust och hanterar snabbtangenter i miljöer baserade på Wayland-protokollet (en konfigurationsfil-kompatibel analog av sxhkd-processen som används i X11-baserade miljöer). Paketet innehåller en oprivilegierad swhks-process som utför åtgärder för snabbtangenter och en swhkd-bakgrundsprocess som körs som root och interagerar med indataenheter på uinput API-nivå. För att organisera interaktionen mellan swhks och swhkd används ett Unix-uttag.

Polkits regler tillåter alla lokala användare att köra /usr/bin/swhkd-processen som root och skicka godtyckliga parametrar till den.

Integrationen av RPM-paketet inlämnat för openSUSE Tumbleweed innehöll ovanliga Polkit-regler i definitionsfil som krävde en granskning av SUSEs säkerhetsteam.

Som ett resultat av granskningen identifierades flera säkerhetsproblem. Enskilda frågor beskrivs i den detaljerade rapporten nedan.

Av sårbarheter som identifierats, nämns följande:

CVE-2022-27815

Denna sårbarhet gör det möjligt att spara en process-PID i en fil med ett förutsägbart namn och i en skrivbar katalog för andra användare (/tmp/swhkd.pid), där vilken användare som helst kan skapa en /tmp/swhkd.pid-fil och lägga in pid för en befintlig process i den, vilket gör det omöjligt att starta swhkd.

I avsaknad av skydd mot att skapa symboliska länkar i /tmp, sårbarheten kan användas för att skapa eller skriva över filer i valfri katalog på systemet (PID skrivs till filen) eller bestäm innehållet i valfri fil på systemet (swhkd matar ut hela innehållet i PID-filen till stdout). Det bör noteras att i den släppta fixen flyttades inte PID-filen till /run-katalogen, utan till /etc-katalogen (/etc/swhkd/runtime/swhkd_{uid}.pid), där den inte heller hör hemma. .

CVE-2022-27814

Denna sårbarhet låter dig manipulera kommandoradsalternativet "-c" för att ange en konfigurationsfil kan fastställa förekomsten av vilken fil som helst på systemet.

Precis som i fallet med den första sårbarheten är det förbryllande att åtgärda problemet: att åtgärda problemet handlar om att det externa "cat"-verktyget ('Command::new("/bin/cat").arg(path) är startas nu för att läsa config file.output()').

CVE-2022-27819

Det här problemet det är också relaterat till användningen av alternativet "-c"., som laddar och analyserar hela konfigurationsfilen utan att kontrollera storleken och typen av filen.

Till exempel, för att orsaka en denial of service på grund av att ledigt minne tar slut och skapa lösa I/O, kan du ange en blockeringsenhet vid start ("pkexec /usr/bin/swhkd -d -c /dev/sda ») eller en karaktärsenhet som avger en oändlig ström av data.

Problemet löstes genom att återställa privilegierna innan filen öppnades, men lösningen var inte komplett eftersom endast användar-ID (UID) återställs, men grupp-ID (GID) förblir detsamma.

CVE-2022-27818

Denna sårbarhet låter dig använda en /tmp/swhkd.sock-fil för att skapa en Unix-socket, som skapas i en offentlig skrivbar katalog, vilket orsakar liknande problem som den första sårbarheten (alla användare kan skapa /tmp/swhkd.sock och generera eller avlyssna tangenttryckningshändelser).

CVE-2022-27817

I denna sårbarhet, ingångshändelser tas emot från alla enheter och i alla sessioner, det vill säga en användare i en annan Wayland- eller konsolsession kan fånga upp händelser när andra användare trycker på snabbtangenter.

CVE-2022-27816

swhks-processen, som swhkd, använder PID-filen /tmp/swhks.pid i den offentligt skrivbara /tmp-katalogen. Problemet liknar den första sårbarheten, men inte lika farligt, eftersom swhks körs under en icke-privilegierad användare.

Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljer 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.