Im Netfilter, dem Subsystem des Linux-Kernels, das zur Filterung und Modifikation von Netzwerkpaketen verwendet wird, wurde eine Schwachstelle (CVE-2022-25636) entdeckt, die es ermöglicht, Code im Kernel-Level auszuführen. Ein Beispiel für einen Exploit wurde angekündigt, das einem lokalen Benutzer erlaubt, seine Berechtigungen in Ubuntu 21.10 ohne aktivierte KASLR-Schutzmechanismen zu erhöhen. Das Problem tritt ab Kernel 5.4 auf. Ein Fix ist bisher als Patch verfügbar (korrektive Kernelversionen wurden noch nicht veröffentlicht). Informationen über die Veröffentlichungen von Paketaktualisierungen in den Distributionen können auf den folgenden Seiten verfolgt werden: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.
Die Schwachstelle wurde durch einen Fehler bei der Berechnung der Array-Größe flow->rule->action.entries in der Funktion nft_fwd_dup_netdev_offload (definiert in der Datei net/netfilter/nf_dup_netdev.c) verursacht, die dazu führen kann, dass kontrollierte Daten des Angreifers in den Speicherbereich außerhalb des zugewiesenen Puffers geschrieben werden. Der Fehler tritt auf, wenn Regeln für „dup“ und „fwd“ in Ketten konfiguriert werden, für die Hardwarebeschleunigung der Paketverarbeitung (Offload) verwendet wird. Da das Überlaufproblem vor der Erstellung der Paketfilterregel und der Überprüfung der Unterstützung für Offload auftritt, ist die Schwachstelle auch für Netzwerkgeräte anwendbar, die keine Hardwarebeschleunigung unterstützen, wie z.B. die Loopback-Schnittstelle.
Es wird festgestellt, dass das Problem relativ einfach auszunutzen ist, da die Werte, die über den Puffer hinausgehen, den Zeiger auf die Struktur net_device überschreiben können, und die Informationen über das überschriebenen Wert an den Benutzerraum zurückgegeben werden, was es ermöglicht, die nötigen Adressen im Speicher für die Durchführung eines Angriffs herauszufinden. Um die Schwachstelle auszunutzen, müssen bestimmte Regeln in nftables erstellt werden, was nur mit den Berechtigungen CAP_NET_ADMIN möglich ist, die von einem unprivilegierten Benutzer in einem separaten Netzwerknamensraum (network namespaces) erlangt werden können. Die Schwachstelle kann auch für Angriffe auf Systemcontainerisolation verwendet werden.
Quelle: opennet.ru
