Remote-Schwachstelle im Linux-Kernel, die bei Verwendung des TIPC-Protokolls auftritt

Im Linux-Kernelmodul wurde eine Schwachstelle (CVE-2022-0435) identifiziert, die den Betrieb des TIPC-Netzwerkprotokolls (Transparent Inter-Process Communication) gewährleistet und möglicherweise die Ausführung von Code auf Kernelebene durch Senden eines speziell entwickelten Netzwerks ermöglicht Paket. Das Problem betrifft nur Systeme mit geladenem tipc.ko-Kernelmodul und konfiguriertem TIPC-Stack, der normalerweise in Clustern verwendet wird und auf nicht spezialisierten Linux-Distributionen standardmäßig nicht aktiviert ist.

Es ist zu beachten, dass beim Erstellen des Kernels im Modus „CONFIG_FORTIFY_SRC=y“ (verwendet in RHEL), der der memcpy()-Funktion zusätzliche Grenzprüfungen hinzufügt, der Vorgang auf einen Notstopp beschränkt ist (der Kernel gerät in Panik). Wenn es ohne zusätzliche Prüfungen ausgeführt wird und Informationen über die zum Schutz des Stapels verwendeten Canary-Tags durchsickern, kann das Problem für die Remote-Codeausführung mit Kernel-Rechten ausgenutzt werden. Die Forscher, die das Problem identifiziert haben, behaupten, dass die Ausnutzungstechnik trivial sei und nach der umfassenden Beseitigung der Schwachstelle in den Distributionen offengelegt werde.

Die Schwachstelle wird durch einen Stapelüberlauf verursacht, der bei der Verarbeitung von Paketen auftritt, wobei der Wert des Feldes mit der Anzahl der Domänenmitgliedsknoten 64 überschreitet. Um Knotenparameter im tipc.ko-Modul zu speichern, wird ein festes Array „u32 Mitglieder[64 ]“ wird verwendet, aber bei der Verarbeitung der im Paket angegebenen Knotennummer wird der Wert von „member_cnt“ nicht überprüft, sodass Werte größer als 64 zum kontrollierten Überschreiben von Daten im nächsten Speicherbereich verwendet werden können zur Struktur „dom_bef“ auf dem Stapel hinzufügen.

Der Fehler, der zu der Sicherheitslücke führte, wurde am 15. Juni 2016 eingeführt und war im Linux 4.8-Kernel enthalten. Die Sicherheitslücke wurde in den Linux-Kernel-Versionen 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 und 4.9.301 behoben. In den Kerneln der meisten Distributionen bleibt das Problem weiterhin bestehen: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Das TIPC-Protokoll wurde ursprünglich von Ericsson entwickelt, dient der Organisation der Interprozesskommunikation in einem Cluster und wird hauptsächlich auf Clusterknoten aktiviert. TIPC kann sowohl über Ethernet als auch über UDP (Netzwerkport 6118) arbeiten. Beim Arbeiten über Ethernet kann ein Angriff aus dem lokalen Netzwerk erfolgen, bei Verwendung von UDP aus dem globalen Netzwerk, sofern der Port nicht durch eine Firewall abgedeckt ist. Der Angriff kann auch von einem unprivilegierten lokalen Benutzer des Hosts ausgeführt werden. Um TIPC zu aktivieren, müssen Sie das Kernelmodul tipc.ko laden und die Bindung an eine Netzwerkschnittstelle mithilfe von netlink oder dem Dienstprogramm tipc einrichten.

Source: opennet.ru

Kommentar hinzufügen