Kwetsbaarheid in XFS waardoor onbewerkte blokapparaatgegevens kunnen worden gelezen

Er is een kwetsbaarheid (CVE-2021-4155) geïdentificeerd in de XFS-bestandssysteemcode waarmee een lokale gebruiker zonder rechten ongebruikte blokgegevens rechtstreeks vanaf een blokapparaat kan lezen. Alle belangrijke versies van de Linux-kernel ouder dan 5.16 die het XFS-stuurprogramma bevatten, hebben last van dit probleem. De oplossing was opgenomen in versie 5.16, evenals in kernelupdates 5.15.14, 5.10.91, 5.4.171, 4.19.225, enz. De status van updates die worden gegenereerd om het probleem in distributies op te lossen, kan worden gevolgd op deze pagina's: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Het beveiligingslek wordt veroorzaakt door het onjuiste gedrag van twee XFS-specifieke ioctl(XFS_IOC_ALLOCSP) en ioctl(XFS_IOC_FREESP), die een functionele analoog zijn van de kernelbrede fallocate() systeemaanroep. Bij het vergroten van een bestandsgrootte die niet blok-uitgelijnd is, resetten ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP de staartbytes pas naar nul op de volgende blokgrens. Op XFS met een standaard blokgrootte van 4096 bytes kan een aanvaller dus tot 4095 bytes aan eerder geschreven gegevens uit elk blok lezen. Deze gebieden kunnen gegevens bevatten uit verwijderde bestanden, gedefragmenteerde bestanden en bestanden met gededupliceerde blokken.

U kunt uw systeem op het probleem testen met behulp van een eenvoudig exploit-prototype. Als het na het uitvoeren van de voorgestelde reeks opdrachten mogelijk is om de tekst van Shakespeare te lezen, dan is het FS-stuurprogramma kwetsbaar. Voor het aanvankelijk aankoppelen van een XFS-partitie voor demonstratie zijn root-rechten vereist.

Omdat ioctl(XFS_IOC_ALLOCSP) en ioctl(XFS_IOC_FREESP) qua functionaliteit vrijwel hetzelfde zijn als de standaard fallocate(), en hun enige verschil datalekken is, is hun aanwezigheid vergelijkbaar met een achterdeur. Ondanks het algemene beleid om bestaande interfaces in de kernel niet te wijzigen, werd op voorstel van Linus besloten om deze ioctls in de volgende versie volledig te verwijderen.

Bron: opennet.ru

Voeg een reactie