
Technische Analyse von CVE-2021-3493, einer lokalen Privilege-Escalation-Schwachstelle in Ubuntu OverlayFS, einschließlich Erklärung der Grundursache und betroffener Versionen.
TL;DR
Erfahren Sie, wie eine Schwachstelle in OverlayFS lokalen Benutzern unter Ubuntu ermöglicht, Root-Rechte zu erlangen.
Zusammenfassung der Sicherheitslücke
Ein Ubuntu-spezifisches Problem im overlayfs-Dateisystem des Linux-Kernels, bei dem die Anwendung von Dateisystem-Capabilities in Bezug auf Benutzernamespaces nicht ordnungsgemäß validiert wurde. Ein lokaler Angreifer konnte dies nutzen, um erhöhte Rechte zu erlangen – aufgrund eines Patches, der in Ubuntu enthalten ist, um unprivilegierte OverlayFS-Mounts zu ermöglichen.
CVE-2021-3493
Melder
Ein unabhängiger Sicherheitsforscher hat diese Schwachstelle an das SSD Secure Disclosure-Programm gemeldet.
Betroffene Versionen
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
Antwort des Anbieters
„Wir haben heute Sicherheitshinweise zu diesem Problem veröffentlicht unter
https://ubuntu.com/security/notices/USN-4915-1 https://ubuntu.com/security/notices/USN-4916-1 https://ubuntu.com/security/notices/USN-4917-1
sowie das Problem in unserem CVE-Tracker öffentlich gemacht:
https://ubuntu.com/security/CVE-2021-3493
Das Folgende ist der Inhalt der Nachricht, die an die oss-security-Liste gesendet wurde: https://www.openwall.com/lists/oss-security/2021/04/16/1
Analyse der Sicherheitslücke
Linux unterstützt Datei-Capabilities, die in erweiterten Dateiattributen gespeichert werden und ähnlich wie das setuid-Bit funktionieren, aber feingranularer sein können. Ein vereinfachter Ablauf zum Setzen von Datei-Capabilities sieht im Pseudocode wie folgt aus: setxattr(...): if cap_convert_nscap(...) is not OK: then fail vfs_setxattr(...)
Der wichtige Aufruf ist cap_convert_nscap, der die Berechtigungen in Bezug auf Namespaces prüft.
Wenn wir die Datei-Capabilities aus unserem eigenen Namespace und auf unserem eigenen Mount setzen, gibt es kein Problem, und wir haben die Erlaubnis dazu. Das Problem ist, dass OverlayFS diese Operation an das zugrunde liegende Dateisystem weiterleitet und dabei nur vfs_setxattr aufruft und die Prüfungen in cap_convert_nscap überspringt.
Dadurch können beliebige Capabilities für Dateien im äußeren Namespace/Mount gesetzt werden, wo sie auch während der Ausführung angewendet werden.
In Linux 5.11 wurde der Aufruf von cap_convert_nscap in vfs_setxattr verschoben, sodass es nicht mehr anfällig ist.