Schwachstelle an der Rust Standardbibliothéik

Eng Schwachstelle (CVE-2022-21658) gouf an der Rust Standardbibliothéik identifizéiert wéinst engem Rennenbedingung an der std :: fs :: remove_dir_all () Funktioun. Wann dës Funktioun benotzt gëtt fir temporär Dateien an enger privilegiéierter Applikatioun ze läschen, kann en Ugräifer d'Läschung vun arbiträre Systemdateien an Verzeichnisser erreechen, déi den Ugräifer normalerweis net Zougang hätt ze läschen.

D'Schwachheet gëtt verursaacht duerch falsch Ëmsetzung vun der Iwwerpréiwung vun symbolesche Linken ier Dir rekursiv Verzeichnungen läschen. Amplaz vu Symlinks ze verhënneren datt se verfollegt ginn, kontrolléiert remove_dir_all () fir d'éischt ob d'Datei e Symlink ass. Wann e Link definéiert ass, da gëtt et als Datei geläscht, a wann et e Verzeechnes ass, da gëtt eng rekursiv Inhaltentfernungsoperatioun genannt. De Problem ass datt et e liichte Verspéidung tëscht dem Scheck an dem Start vun der Läschoperatioun ass.

Zu enger Zäit wou d'Kontroll schonn duerchgefouert gouf, awer d'Operatioun vun der Enumeratioun vun de Verzeichnisser fir d'Läschung nach net ugefaang huet, kann den Ugräifer den Verzeechnes mat temporäre Dateien mat engem symbolesche Link ersetzen. Wann et op der richteger Zäit trefft, behandelt d'Funktion remove_dir_all () de symbolesche Link als Verzeichnis a fänkt un den Inhalt ze läschen, op deen de Link weist. Trotz der Tatsaach, datt den Erfolleg vun der Attack hänkt vun der Genauegkeet vun der gewielter Zäit vum Ersatz vum Verzeechnes an de richtege Moment ze schloen, ass déi éischte Kéier onwahrscheinlech, während den Experimenter konnten d'Fuerscher e widderhuelend erfollegräichen Attack erreechen nodeems d'Exploit bannent ausgefouert gouf. e puer Sekonnen.

All Versioune vu Rust vun 1.0.0 bis 1.58.0 inklusiv sinn betraff. D'Thema ass elo a Patchform geléist ginn (d'Fix gëtt an der 1.58.1 Verëffentlechung abegraff, déi bannent e puer Stonnen erwaart gëtt). Dir kënnt d'Eliminatioun vun der Schwachstelle bei Verdeelungen op dëse Säiten iwwerwaachen: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. All Benotzer vu Rust Programmer, déi mat erhéngte Privilegien lafen an d'Funktioun remove_dir_all benotzen, ginn ugeroden Rust dringend op d'Versioun 1.58.1 ze aktualiséieren. Et ass interessant datt de verëffentlechte Patch de Problem net op all Systemer léist; zum Beispill, am REDOX OS a Versioune vu macOS virum 10.10 (Yosemite), ass d'Schwachstelle net blockéiert wéinst der Verontreiung vum O_NOFOLLOW Fändel, wat folgend symbolesch deaktivéiert. Linken.

Source: opennet.ru

Setzt e Commentaire