In dem Tool zur isolierten AusfĂŒhrung von Anwendungen Firejail wurde eine SicherheitsanfĂ€lligkeit (CVE-2022-31214) festgestellt, die es einem lokalen Benutzer ermöglicht, Root-Rechte im Hauptsystem zu erlangen. Ein funktionierender Exploit ist öffentlich verfĂŒgbar und wurde in aktuellen Versionen von openSUSE, Debian, Arch, Gentoo und Fedora mit installierter Firejail-Utility getestet. Das Problem wurde in der Version 0.9.70 von Firejail behoben. Als Sicherheitsumgehung können in den Einstellungen (\/etc\/firejail\/firejail.config) die Parameter âjoin noâ und âforce-nonewprivs yesâ festgelegt werden.
Firejail verwendet zur Isolation den Mechanismus der Namespaces, AppArmor und die Filterung von Systemaufrufen (seccomp-bpf) in Linux, benötigt jedoch zur Konfiguration des isolierten Starts erhöhte Rechte, die es durch Anbindung an die SUID-Root-Utility oder durch die Verwendung von sudo erhĂ€lt. Die SicherheitsanfĂ€lligkeit wird durch einen Fehler in der Logik der Option ââjoin=â verursacht, die fĂŒr den Anschluss an eine bereits laufende isolierte Umgebung vorgesehen ist (analog zum Befehl login fĂŒr Sandbox-Umgebungen) und die Umgebung anhand der Prozess-ID (PID) erkennt. Vor dem ZurĂŒcksetzen der Privilegien ermittelt Firejail die Privilegien des angegebenen Prozesses und wendet diese auf den neuen Prozess an, der ĂŒber die Option ââjoinâ an die Umgebung angeschlossen wird.
Vor dem Anschluss wird ĂŒberprĂŒft, ob der angegebene Prozess in der Firejail-Umgebung ausgefĂŒhrt wird. Diese ĂberprĂŒfung bewertet das Vorhandensein der Datei \/run\/firejail\/mnt\/join. Um die Schwachstelle auszunutzen, kann der Angreifer eine fiktive, nicht isolierte Firejail-Umgebung simulieren, indem er den Mount-Namespace verwendet, und sich dann ĂŒber die Option ââjoinâ anschlieĂen. Wenn in den Einstellungen der Modus zur Verhinderung des Erhalts zusĂ€tzlicher Privilegien in neuen Prozessen (prctl NO_NEW_PRIVS) nicht aktiviert ist, wird Firejail den Benutzer mit der fiktiven Umgebung verbinden und versuchen, die Konfiguration des Nutzer-ID-Namespace des Init-Prozesses (PID 1) anzuwenden.
SchlieĂlich wird der ĂŒber «firejail âjoin» verbundene Prozess im ursprĂŒnglichen Namensraum des Benutzers mit unverĂ€nderten Rechten erscheinen, jedoch in einem anderen Dateisystembereich, der vollstĂ€ndig vom Angreifer kontrolliert wird. Der Angreifer kann auch setuid-root-Programme in diesem von ihm erstellten Dateisystembereich ausfĂŒhren, was es ihm beispielsweise ermöglicht, die Einstellungen von /etc/sudoers oder die PAM-Parameter in seiner Dateihierarchie zu Ă€ndern und die Möglichkeit zu erhalten, Befehle mit root-Rechten ĂŒber die Tools sudo oder su auszufĂŒhren.
Quelle: opennet.ru
