Root Vulnerabilitéit am Snap Package Management Toolkit

Qualys huet dëst Joer eng drëtt schwéier Schwachstelle identifizéiert (CVE-2022-3328) am Snap-confine Utility, deen mam SUID Root Fändel kënnt a vum Snapd Prozess opgeruff gëtt fir en ausführbar Ëmfeld fir Uwendungen ze bilden, déi a selbstänneg Pakete verdeelt ginn. am Snap-Format. D'Vulnerabilitéit erlaabt e lokalen onprivilegéierte Benotzer Code Ausféierung als Root an der Standard Ubuntu Konfiguratioun z'erreechen. De Problem gouf an der Verëffentlechung vu snapd 2.57.6 fixéiert. Package Updates goufen fir all ënnerstëtzt Filialen vun Ubuntu verëffentlecht.

Interessanterweis gouf d'Schwachheet a Fro agefouert am Prozess fir eng ähnlech Februar Schwachstelle a Snap-Confine ze fixéieren. D'Fuerscher konnten en Aarbechtsexploit virbereeden, deen de Root-Zougang am Ubuntu Server 22.04 ubitt, deen, nieft der Snap-Confine Schwachstelle, och zwou Schwachstelle am Multipathd-Prozess involvéiert (CVE-2022-41974, CVE-2022-41973) Zesummenhang mat Permissiounen ëmzegoen wann Dir privilegiéiert Kommandoen passéiert an onsécher Handhabung vu symbolesche Linken.

D'Schwachheet am snap-confine gëtt duerch e Rassbedingung an der must_mkdir_and_open_with_perms() Funktioun verursaacht, bäigefüügt fir géint d'Ersatzstéck vum /tmp/snap.$SNAP_NAME Verzeichnis mat engem symbolesche Link no der Besëtzerkontrolle ze schützen, awer virum Mount System Uruff gëtt genannt fir Verzeichnisser an et ze binden fir e Package am Snap-Format. D'Sécherheet bäigefüügt war den /tmp/snap.$SNAP_NAME Verzeichnis ëmbenennen an en anere Verzeechnes an /tmp mat engem zoufällegem Numm, wann et existéiert an net vum Root-Benotzer gehéiert.

Wann Dir den /tmp/snap.$SNAP_NAME Verzeichnis ëmbenennen Operatioun exploitéiert, hunn d'Fuerscher vun der Tatsaach profitéiert datt snap-confine och e /tmp/snap.rootfs_XXXXXX Verzeichnis erstellt fir d'Wuerzel vum Inhalt vum Snap Package. Den "XXXXXX" Deel vum Numm gëtt zoufälleg vum mkdtemp() gewielt, awer e Package mam Numm "rootfs_XXXXXX" kann sc_instance_name_validate passéieren (dh d'Iddi ass $SNAP_NAME op "rootfs_XXXXXX" ze setzen an da wäert d'Ëmbenennungsoperatioun zu Iwwerschreiwe féieren den /tmp/snap.rootfs_XXXXXX Verzeichnis mat der Snap root).

Fir eng simultan Notzung vun /tmp/snap.rootfs_XXXXXX z'erreechen an /tmp/snap.$SNAP_NAME ëmbenennen, goufen zwou Instanzen vu snap-confine gestart. Soubal déi éischt Instanz /tmp/snap.rootfs_XXXXXX erstallt gouf, géif de Prozess blockéieren an eng zweet Instanz mam Packagenumm rootfs_XXXXXX fänkt un, wouduerch den temporäre Verzeechnes vun der zweeter Instanz /tmp/snap.$SNAP_NAME den /tmp/snap gëtt .rootfs_XXXXXX Root Verzeechnes vun der éischter Instanz. Direkt nodeems den Ëmbenennung duerchgefouert gouf, ass déi zweet Instanz erofgefall, an /tmp/snap.rootfs_XXXXXX gouf duerch Course Conditioun Manipulatioun ersat, wéi an der Ausbeutung vun der Februar Schwachstelle. No der Ännerung gouf d'Ausféierungssperre vun der éischter Instanz geläscht an d'Ugräifer kruten voll Kontroll iwwer de Snap-Root-Verzeichnis.

De leschte Schrëtt war e Symlink /tmp/snap.rootfs_XXXXXX/tmp ze kreéieren deen vun der sc_bootstrap_mount_namespace () Funktioun benotzt gouf fir de schreiwenbare richtege Verzeichnis /tmp an all Verzeichnis am Dateiesystem ze binden, well de Mount () Uruff follegt. Symlinks virum Montage. Sou Montage gëtt duerch AppArmor Restriktiounen blockéiert, awer fir dës Blockéierung ze ëmgoen, déi exploitéiert zwou Hëllefsschwieregkeeten am Multipathd.

Source: opennet.ru

Setzt e Commentaire