DirtyPipe – Ny allvarlig sårbarhet i Linux-kerneln
Uppdatering: Ny PoC-exploit vid namn dirtypipez från blasty som skriver över godtycklig suid-binär och sedan återställer den för att erhålla root.
Uppdatering 2: Denna sårbarhet gäller även containers. Se detta blogginlägg från Aquasec
Max Kellermann har identifierat en ny säkerhetsbrist i Linux-kerneln som medger att du kan skriva över godtycklig fil. Sårbarheten har fått CVE-2022-0847 och finns i alla Linux-kernels från version 5.8. Fixades i versionerna 5.16.11, 5.15.25 och 5.10.102. Även Android är drabbad av denna sårbarhet eftersom Android-baserade system använder sig av Linux-kerneln.
Även värt att notera så skriver Max följande:
To make this vulnerability more interesting, it not only works without write permissions, it also works with immutable files, on read-only btrfs snapshots and on read-only mounts (including CD-ROM mounts). That is because the page cache is always writable (by the kernel), and writing to a pipe never checks any permissions.
Vissa förutsättningar måste dock uppfyllas, men dessa är rätt enkla:
- Angriparen måste ha läsrättigheter
- Offset får inte vara på en page boundary
- Skrivningen kan inte ske över en page boundary
- Storleken på filen kan inte ändras
Demo på hur CVE-2022-0847 kan utnyttjas för att erhålla root på en Kali Linux-installation (privilege escalation). Detta är på en fullt patchad Kali:
Oklart dock huruvida detta fungerar med säkerhetshöjande lösningar såsom Apparmor, SELinux etc. Rekommenderar även att läsa Max intressanta write-up om hur han hittade buggen. Även finnes fungerande exploit här:
Observera att många operativsystem såsom Debian har under dagen idag måndag, åtgärdat buggen.