Schwachstelle am Linux-Kernel, dee mat liesbare Dateien tampere kann

Eng Schwachstelle gouf am Linux Kernel (CVE-2022-0847) identifizéiert, deen den Inhalt vum Säit Cache fir all Dateien iwwerschreiwe léisst, och déi am Read-only Modus, opgemaach mam O_RDONLY Fändel, oder lokaliséiert op Dateisysteme montéiert an Lies-nëmmen Modus. Op der praktescher Säit kann d'Schwachheet benotzt ginn fir Code an arbiträr Prozesser ze sprëtzen oder korrupt Daten an opgemaachte Dateien. Zum Beispill kënnt Dir den Inhalt vun der autoriséierter_keys Datei fir den sshd Prozess änneren. E Prototyp Exploit ass verfügbar fir ze testen.

De Problem krut de Codenumm Dirty Pipe, duerch Analogie mat der Dirty COW kritescher Schwachstelle identifizéiert am Joer 2016. Et gëtt bemierkt datt Dirty Pipe um selwechten Niveau ass wéi Dirty COW wat d'Gefor ugeet, awer vill méi einfach ze bedreiwen ass. D'Schwachheet gouf identifizéiert während der Analyse vu Reklamatiounen iwwer periodesche Schued fir Dateien, déi iwwer dem Netz erofgeluede goufen an engem System deen kompriméiert Archiven vun engem Logserver erofluet (37 Schuedenersaz an 3 Méint op engem geluedene System), déi mat der Splice() Operatioun virbereet goufen an onbenannt Päifen.

D'Vulnerabilitéit huet sech zënter dem Linux 5.8 Kernel manifestéiert, am August 2020 verëffentlecht, d.h. ass präsent an Debian 11 awer beaflosst net den Basiskär an Ubuntu 20.04 LTS. RHEL 8.x an openSUSE / SUSE 15 Kernels baséieren ursprénglech op alen Filialen, awer et ass méiglech datt d'Ännerung déi de Problem verursaacht, op si zréckportéiert gouf (nach keng exakt Donnéeën). Dir kënnt d'Publikatioun vu Packageupdates an Verdeelungen op dëse Säiten verfollegen: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. E Fix fir d'Schwachheet gouf a Verëffentlechungen 5.16.11, 5.15.25 a 5.10.102 proposéiert. De Fix ass och am Kernel abegraff deen an der Android Plattform benotzt gëtt.

D'Schwachheet gëtt verursaacht duerch de Mangel un Initialiséierung vum Wäert "buf->Flags" am Code vun der Kopie_page_to_iter_pipe() a push_pipe() Funktiounen, trotz der Tatsaach datt d'Erënnerung net geläscht gëtt wann d'Struktur zougewisen ass, a mat bestëmmte Manipulatiounen mat onbenannt Päifen, "buf-> Fändelen" kann e Wäert vun enger anerer Operatioun enthalen. Mat dëser Fonktioun kann en onprivilegéierten lokalen Benotzer d'Erscheinung vum PIPE_BUF_FLAG_CAN_MERGE Wäert am Fändel erreechen, wat Iech erlaabt Daten am Säitcache ze iwwerschreiwe andeems Dir einfach nei Donnéeën op eng speziell preparéiert onbenannt Päif (Päif) schreift.

Fir en Attack muss d'Zildatei liesbar sinn, a well Zougangsrechter net iwwerpréift ginn wann Dir op eng Päif schreift, kann Ersatz am Säitcache gemaach ginn, och fir Dateien, déi an Partitionen opgestallt sinn, déi nëmme liesen (zum Beispill fir Dateien c) CD-ROM). Nodeems Dir d'Informatioun am Säitcache ersat hutt, kritt de Prozess, wann Dir Daten aus der Datei liest, net déi aktuell, awer déi ersat Daten.

D'Operatioun geet erof op en onbenannt Päif ze kreéieren an et mat arbiträren Donnéeën ze fëllen fir d'Astellung vum PIPE_BUF_FLAG_CAN_MERGE Fändel an all Ringstrukturen, déi domat verbonne sinn, z'erreechen. Als nächst ginn d'Donnéeën aus der Päif gelies, awer de Fändel bleift an allen Instanzen vun der pipe_buffer Struktur an de pipe_inode_info Ringstrukturen gesat. Da gëtt e Splice () Uruff gemaach fir Daten aus der Zildatei an en onbenannt Päif ze liesen, ugefaange bei der erfuerderter Offset. Wann Daten op dës onbenannt Päif geschriwwe ginn, iwwerschreift de PIPE_BUF_FLAG_CAN_MERGE Fändel d'Donnéeën am Säitcache anstatt eng nei Instanz vun der pipe_buffer Struktur ze kreéieren.

Source: opennet.ru

Setzt e Commentaire