nachdem heute auf einigen Tickern eine “neue” Sicherheitslücke inkl. Rootkit gemeldet wurde (z. B. hier), wollte ich mal fragen, wie ihr das bewertet. Panikmache oder muss man sich Sorgen machen? Wird das bei Tumbleweed verwendet und falls ja, sind Aktionen wie z. B. Deaktivierung (wie das offenbar auch Google gemacht hat) erforderlich?
No Panic das ist meiner Meinung nach keine Schwachstelle im Linux Kernel für aktuelle Versionen. Solange kein sonstiger Bug im benutzten Kernel vorhanden ist kann man mit io_uring keinen Root Zugriff als normaler User erlangen. Die Behauptung im Artikel das man mit io_uring Zugriffs Kontrollen umgehen kann ist falsch und soweit ich sehe im Original von ARMO nicht enthalten.
Fakt ist aber das in der Vergangenheit diverse Bugs im Kernel waren die das ermöglicht haben und z.B. Google io_uring in Android deaktiviert hat, Docker macht das mit den Default Einstellungen für Container meiner Meinung nach auch.
Und natürlich kann man die “Attack Surface” eines Systems verringern wenn man nicht benötigte Anteile deaktiviert. Siehe dazu bei Bedarf für System Härtung Documentation for /proc/sys/kernel/ — The Linux Kernel documentation.
Der Punkt der ARMO Meldung ist das die aktuellen EDR Softwarelösungen (EDR = Endpoint Detection and Response von manchen auch scherzhaft als Enterprise Schlangenöl bezeichnet) aktuell Angriffe über io_uring gar nicht oder eingeschränkt erkennen können. Und ganz ohne den Syscall io_uring_queue_init geht so ein Angriff sicher nicht und damit kann man den Start eines solchen möglichen Angriffs durchaus erkennen. Aber ich vermute mal das der Einsatz von EDR Software wie Falco und co. bei openSUSE Usern nicht sehr verbreitet ist.
In den aktuellen Leap und Tumbleweed kernl ist io_uring aktiv. Bei meiner Leap 15.6 Instanz wird io_uring bei qemu und plocate eingesetzt. Und wenn ich das richtig verstehe gibt es auch ein VFS io_uring Module für Samba das aber nicht per Default aktiv ist. Mit Tumbleweed wird es bei mir auch noch in der libnvme1 verwendet. Wobei ich dazu nur nach Programmen gesucht habe die liburing als shared object verwenden. Statisch gelinkte Programme wie z.B. GO Programme findet das nicht.