In Snap wurden zwei Sicherheitslücken gefunden, die es erlaubten, Code als Root auszuführen

Qualis enthüllt die Nachrichten, die ich identifiziere zwei Schwachstellen (CVE-2021-44731 und CVE-2021-44730) im Dienstprogramm snap-confine, mit dem Root-SUID-Flag gesendet und vom Snapd-Prozess aufgerufen, um eine ausführbare Umgebung für Anwendungen zu generieren, die in Snap-Paketen verteilt werden.

Im Blogbeitrag wird das erwähnt Sicherheitslücken ermöglichen es einem nicht privilegierten lokalen Benutzer, Code als Root auszuführen im System.

Die erste Schwachstelle ermöglicht einen Angriff zur Manipulation physischer Verbindungen, erfordert jedoch das Deaktivieren des System-Hardlink-Schutzes (indem sysctl fs.protected_hardlinks auf 0 gesetzt wird).

Das Problem Dies ist auf eine falsche Überprüfung des Speicherorts der ausführbaren Dateien zurückzuführen der Dienstprogramme snap-update-ns und snap-discard-ns die als root laufen. Der Pfad zu diesen Dateien wurde in der Funktion sc_open_snapd_tool() basierend auf ihrem eigenen Pfad von /proc/self/exe berechnet, sodass Sie einen festen Link erstellen können, um ihn in Ihrem Verzeichnis einzuschränken und Ihre Optionen auf snap-update-ns und snap zu setzen -discard-ns in diesem Verzeichnis. Beim Start über einen festen Link führt snap-confine als Root die vom Angreifer ersetzten Dateien snap-update-ns und snap-discard-ns aus dem aktuellen Verzeichnis aus.

Die erfolgreiche Ausnutzung dieser Schwachstelle ermöglicht es jedem nicht privilegierten Benutzer, Root-Rechte auf dem anfälligen Host zu erlangen. Die Sicherheitsforscher von Qualys konnten die Schwachstelle unabhängig überprüfen, einen Exploit entwickeln und volle Root-Rechte auf Standard-Ubuntu-Installationen erlangen.

Sobald das Qualys-Forschungsteam die Schwachstelle bestätigt hatte, haben wir uns an der verantwortungsvollen Offenlegung der Schwachstelle beteiligt und uns mit Anbietern und Open-Source-Distributionen abgestimmt, um diese neu entdeckte Schwachstelle bekannt zu geben.

Die zweite Schwachstelle wird durch eine Racebedingung verursacht und kann in der standardmäßigen Ubuntu-Desktopkonfiguration ausgenutzt werden. Damit der Exploit auf Ubuntu Server erfolgreich funktioniert, müssen Sie während der Installation eines der Pakete aus dem Abschnitt „Featured Server Snaps“ auswählen.

Rennzustand manifestiert sich in der Funktion setup_private_mount() Wird während der Vorbereitung des Einhängepunkt-Namensraums für das Instant-Paket aufgerufen. Diese Funktion erstellt ein temporäres Verzeichnis "/tmp/snap.$SNAP_NAME/tmp" oder verwendet ein vorhandenes, um Verzeichnisse für das Snap-Paket darin zu verknüpfen und einzuhängen.

Da der Name des temporären Verzeichnisses vorhersehbar ist, kann ein Angreifer seinen Inhalt in einen symbolischen Link ändern, nachdem er den Besitzer verifiziert hat, aber bevor er das Mount-System aufruft. Sie können zum Beispiel einen Symlink „/tmp/snap.lxd/tmp“ im Verzeichnis /tmp/snap.lxd erstellen, der auf ein beliebiges Verzeichnis zeigt, und der mount()-Aufruf folgt dem Symlink und hängt das Verzeichnis im Bereich ein von Namen.

Auf ähnliche Weise können Sie seinen Inhalt in /var/lib einhängen und, indem Sie /var/lib/snapd/mount/snap.snap-store.user-fstab überschreiben, dafür sorgen, dass Ihr /etc-Verzeichnis im Paketnamensraum snap eingehängt wird, um Ihre Bibliothek zu laden vom Root-Zugriff durch Ersetzen von /etc/ld.so.preload.

Es wird beobachtet, dass Das Erstellen eines Exploits erwies sich als nicht triviale Aufgabe, da das Dienstprogramm snap-confine unter Verwendung sicherer Programmiertechniken geschrieben wurde (snapd ist in Go geschrieben, aber C wird für snap-confine verwendet), hat einen Schutz basierend auf AppArmor-Profilen, filtert Systemaufrufe basierend auf dem seccomp-Mechanismus und verwendet einen Mount-Namespace zur Isolierung.

Die Forscher konnten jedoch einen funktionalen Exploit vorbereiten um Root-Zugriff auf das System zu erhalten. Der Exploit-Code wird einige Wochen nach der Installation der bereitgestellten Updates durch die Benutzer veröffentlicht.

Abschließend sei darauf hingewiesenDie Probleme wurden im snapd-Paketupdate behoben für die Ubuntu-Versionen 21.10, 20.04 und 18.04.

Zusätzlich zu den anderen Distributionen, die Snap verwenden, wurde Snapd 2.54.3 veröffentlicht, das zusätzlich zu den oben genannten Problemen eine weitere Schwachstelle behebt (CVE-2021-4120), die es ermöglicht, bei der Installation speziell entwickelter Plugin-Pakete, willkürliche AppArmor-Regeln außer Kraft setzen und die für das Paket festgelegten Zugriffsbeschränkungen umgehen.

Wenn Sie daran interessiert, mehr darüber zu erfahren, Sie können die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.