Erica Windisch warnt, dass Linux-Benutzernamespaces möglicherweise nicht sicher genug sind. Wenn einem echten Root-Benutzer die Fähigkeit SYS_CAP_ADMIN entzogen wurde, aber er dann einen Benutzernamespace erstellt, wird die Fähigkeit für den gefälschten Root-Benutzer wiederhergestellt. Vor der Erstellung des Namespace würde 'mount' verweigert, aber nach der Erstellung würde der Systemaufruf 'mount' in begrenztem Umfang wieder funktionieren. Dies ist bedeutsam genug, dass bei einem echten Root-Benutzer und einem Kernel mit Benutzernamespaces die Linux-Fähigkeiten vollständig untergraben werden können.
Die Manpage von user_namespaces bestätigt, dass der von clone(2) mit CLONE_NEWUSER erstellte Kindprozess mit einem vollständigen Satz von Fähigkeiten im neuen Benutzernamespace beginnt. Benutzernamespaces ermöglichen "interessante" Überschneidungen von Sicherheitsmodellen und gewähren dem neuen Namespace vollständige Root-Fähigkeiten. Dies kann es CLONE_NEWUSER ermöglichen, CAP_NET_ADMIN effektiv über andere Netzwerk-Namespaces zu verwenden, insbesondere wenn Container nicht verwendet werden. Prozesse mit CAP_NET_ADMIN haben eine große Angriffsfläche und haben zu mehreren Kernel-Schwachstellen geführt, was es einem unprivilegierten Benutzernamespace möglicherweise ermöglicht, das Netzwerk-Subsystem des Kernels anzugreifen.
Demonstrationen zeigen, dass auf einem Host mit kompilierten Benutzernamespaces ein Benutzer mit ioctl und SIOCBRADDBR eine Brücke erstellen kann, obwohl das Setzen von Dateifähigkeiten mit cap_set_file fehlschlägt. Ubuntu aktiviert CONFIG_USER_NS, patcht es jedoch so, dass die unprivilegierte Nutzung mit dem Sysctl unprivileged_userns_clone deaktiviert werden kann. Die Kernel-Konfiguration hat für Benutzernamespaces standardmäßig 'n' und empfiehlt MEMCG, um den Speicher unprivilegierter Benutzer zu begrenzen.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing