Kwetsbaarheid in de Linux-kernel die het mogelijk maakt om alleen-lezen bestanden te vervalsen.

In de Linux-kernel is een kwetsbaarheid ontdekt (CVE-2022-0847), waarmee de inhoud van de pagina-cache voor alle bestanden kan worden overschreven, inclusief bestanden die alleen-lezen zijn, geopend met de vlag O_RDONLY, of geplaatst op bestandssystemen die in alleen-lezen modus zijn gekoppeld. Praktisch gezien kan de kwetsbaarheid worden gebruikt om code in willekeurige processen in te voegen of gegevens in geopende bestanden te vervormen. Bijvoorbeeld, de inhoud van het bestand authorized_keys voor het proces sshd kan worden veranderd. Een exploit-prototype is beschikbaar voor testen.

De kwestie heeft de codenaam Dirty Pipe gekregen, vergelijkbaar met de kritieke kwetsbaarheid Dirty COW die in 2016 werd ontdekt. Het wordt opgemerkt dat Dirty Pipe qua gevaarlijkheid op hetzelfde niveau als Dirty COW staat, maar aanzienlijk eenvoudiger te exploiteren is. De kwetsbaarheid werd ontdekt tijdens het analyseren van klachten over periodieke beschadiging van netwerklocaties bestanden op een systeem dat gecomprimeerde archieven van een logserver laadt (37 beschadigingen in 3 maanden op een zwaar belast systeem), waarbij gebruik werd gemaakt van de splice() -bewerking en niet-gedefinieerde pijpen.

De kwetsbaarheid doet zich voor vanaf de Linux-kernel 5.8, uitgebracht in augustus 2020, d.w.z. deze is aanwezig in Debian 11, maar raakt de basis kernel in Ubuntu 20.04 LTS niet. De kernels van RHEL 8.x en openSUSE/SUSE 15 zijn oorspronkelijk gebaseerd op oudere takken, maar het is niet uitgesloten dat de wijziging die het probleem veroorzaakte, in deze versies is teruggeport (nauwkeurige gegevens zijn er nog niet). U kunt de publicatie van pakketupdates in de distributies volgen op de volgende pagina's: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Een oplossing voor de kwetsbaarheid is aangeboden in versies 5.16.11, 5.15.25 en 5.10.102. De oplossing is ook opgenomen in de kernel die op het Android-platform wordt gebruikt.

De kwetsbaarheid wordt veroorzaakt door het ontbreken van initialisatie van de waarde "buf->flags" in de code van de functies copy_page_to_iter_pipe() en push_pipe(), terwijl het geheugen bij het toewijzen van de structuur niet wordt gewist en bij bepaalde manipulaties met niet-gedefinieerde pijpen in "buf->flags" een waarde van een andere bewerking kan verschijnen. Door gebruik te maken van deze eigenschap kan een niet-geprivilegieerde lokale gebruiker ervoor zorgen dat de vlag de waarde PIPE_BUF_FLAG_CAN_MERGE krijgt, waarmee het mogelijk wordt om gegevens in de pagina-cache opnieuw te schrijven door eenvoudig nieuwe gegevens naar een speciaal voorbereide niet-gedefinieerde pijp (pipe) te schrijven.

Voor een aanval moet het doelfile toegankelijk zijn voor lezen, aangezien bij het schrijven naar een pipe de toegangsrechten niet worden gecontroleerd, kan de vervanging in de pagina-cache ook worden uitgevoerd voor bestanden die zich bevinden op secties die alleen voor lezen zijn aangekoppeld (bijvoorbeeld bestanden vanaf een CD-ROM). Na vervanging van de informatie in de pagina-cache zal het proces bij het lezen van gegevens uit het bestand niet de werkelijke, maar de vervangende gegevens verkrijgen.

Exploitatietraject betreft het creƫren van een ongecommuniceerde pipe en het vullen daarvan met willekeurige gegevens om de vlag PIPE_BUF_FLAG_CAN_MERGE in alle bijbehorende ringstructuren in te stellen. Vervolgens worden de gegevens uit de pipe gelezen, terwijl de vlag in alle exemplaren van de structuur pipe_buffer in de ringstructuren pipe_inode_info actief blijft. Daarna wordt de functie splice() aangeroepen om gegevens van het doelfile naar de ongecommuniceerde pipe te lezen, te beginnen bij de vereiste offset. Bij het schrijven van gegevens naar deze ongecommuniceerde pipe leidt de actieve vlag PIPE_BUF_FLAG_CAN_MERGE ertoe dat de gegevens in de pagina-cache worden overschreven, in plaats van dat er een nieuw exemplaar van de structuur pipe_buffer wordt aangemaakt.

Bron: opennet.ru

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