Sicherheitsanfälligkeiten im Linux-Kernel, die es ermöglichen, die eigenen Berechtigungen über nf_tables und ksmbd zu erhöhen.

Im Netfilter, einem Teil des Linux-Kernels, der zur Filterung und Modifikation von Netzwerkpaketen verwendet wird, wurde eine Schwachstelle (CVE-2024-1086) entdeckt, die es einem lokalen Benutzer ermöglicht, Code auf Kernel-Ebene auszuführen und seine Berechtigungen im System zu erhöhen. Das Problem entsteht durch ein doppeltes Freigeben von Speicher im nf_tables-Modul, das für die Funktionalität des Paketfilters nftables verantwortlich ist. Der entdeckende Sicherheitsforscher hat einen funktionierenden Exploit-Prototyp entwickelt und veröffentlicht.

Die Funktionsweise des Exploits wurde in aktuellen Versionen von Debian und Ubuntu mit Linux-Kernels der Versionen 5.14 bis 6.6 sowie in einer Umgebung mit dem Kernel KernelCTF (Capture the Flag), die zusätzliche Patches zur Blockierung gängiger Exploit-Funktionen enthält und von Google im Rahmen ihres Bug-Bounty-Programms verwendet wird, demonstriert. Die Erfolgsquote des Exploits wird auf 99,4 % geschätzt. Der begleitende Artikel behandelt ausführlich den Prozess der Erstellung eines komplexen mehrstufigen Exploits und den Umgang mit den im Kernel vorhandenen Schutzmechanismen und Gegenmaßnahmen gegen Exploits.

Sicherheitsanfälligkeiten im Linux-Kernel, die es ermöglichen, die eigenen Berechtigungen über nf_tables und ksmbd zu erhöhen.

Das Problem resultiert aus einem Fehler in der Funktion nft_verdict_init(), die die Verwendung positiver Werte als Fehlercode für das Verwerfen von Paketen (DROP) in Hooks zulässt. Dies kann verwendet werden, um in der Funktion nf_hook_slow() erneut eine Speicherfreigabe für einen bereits freigegebenen Puffer aufzurufen. Das Problem tritt auf, wenn die Operation NF_DROP mit einem Fehler gebildet wird und der Kernel zuerst NF_DROP interpretiert, dann aber den Puffer freigibt und den Status NF_ACCEPT zurückgibt. Diese Situation führt dazu, dass trotz der Freigabe des mit dem Paket verbundenen Puffers die Verarbeitung nicht gestoppt wird und an einen anderen Handler weitergegeben wird, der seinerseits die Funktion zur Speicherfreigabe ein zweites Mal aufruft.

Die Schwachstelle tritt ab der Kernelversion 3.15 auf, jedoch funktioniert der Exploit mit Kernen ab Version 5.14. Der Fix für die Schwachstelle wurde im Kernel 6.8-rc1 vorgeschlagen und Ende Februar in die stabilen Versionen 5.15.149, 6.1.76 und 6.6.15 übernommen. In den Distributionen kann man den Fix für die Schwachstelle auf den Seiten von: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch verfolgen.

Zusätzlich kann eine Reihe von Sicherheitsanfälligkeiten im ksmbd-Modul hervorgehoben werden, das eine in den Linux-Kernel integrierte Implementierung von Dateidiensten basierend auf dem SMB-Protokoll anbietet. Server Die Schwachstelle CVE-2024-26592 ermöglicht es, ohne Authentifizierung remote eigenen Code mit Kernel-Rechten auf Systemen auszuführen, auf denen das ksmbd-Modul aktiviert ist. Das Problem wird durch einen Race-Condition im Code der TCP-Verbindungsbearbeitung verursacht, der aufgrund fehlender angemessener Sperren beim Arbeiten mit dem Objekt entsteht.

Die Schwachstelle CVE-2023-52440 ermöglicht ebenfalls die remote Ausführung eigenen Codes mit Kernel-Rechten, wird jedoch durch einen Pufferüberlauf bei der Verarbeitung fehlerhafter Sitzungsschlüssel verursacht, da eine ordnungsgemäße Überprüfung der Größe der vom Benutzer empfangenen Daten vor dem Kopieren in einen Puffer mit fester Größe fehlt.

Die Schwachstellen (1, 2, 3) CVE-2024-26594, CVE-2023-52442 und CVE-2023-52441 in ksmbd ermöglichen es, Inhalte des Kernspeichers remote ohne Authentifizierung auszulesen. Die Schwachstelle CVE-2024-26594 resultiert aus unzureichender Datenüberprüfung bei der Verarbeitung eingehender SMB2 Mech-Token, was dazu führt, dass Daten aus dem Pufferbereich zurückgegeben werden. Die Schwachstelle CVE-2023-52442 entsteht durch das Fehlen einer ordnungsgemäßen Eingabeverifizierung bei der Verarbeitung verknüpfter Anfragen. Die Schwachstelle CVE-2023-52441 ist auf das Fehlen der notwendigen Eingabeverifizierung bei der Handhabung von SMB2 Verbindungsanfragen zurückzuführen.

Die Schwachstellen CVE-2024-26594 und CVE-2024-26592 wurden im Kernel 6.8 sowie in den Korrekturupdates der vergangenen stabilen Versionen 6.1.75, 6.6.14 und 6.7.2 behoben. Die anderen Schwachstellen wurden im Kernel 6.5 und in den Updates 5.15.145, 6.1.53 und 6.4.16 behoben.

Abschließend kann die Aktivierung des neuen Entwicklerteams für den Linux-Kernel erwähnt werden, das gegründet wurde, um Schwachstellen zu analysieren und die Beziehung zwischen den in den Kernel eingebrachten Korrekturen und den Sicherheitsproblemen zu bewerten. Im Februar gründeten die Kernel-Entwickler einen eigenen CNA-Dienst (CVE Numbering Authority), der die Befugnis erhielt, CVE-Identifikatoren für Schwachstellen eigenständig zu vergeben. Zuvor lag die Vergabe von CVE und die Analyse der Beziehung zwischen Korrekturen und möglichen Schwachstellen in der Verantwortung der Distributionsentwickler, während potenzielle Schwachstellen im Kernel nicht hervorgehoben und gleichwertig mit normalen Korrekturen behandelt wurden. Die Ergebnisse der neuen Dienststelle übertrafen alle Erwartungen – täglich werden im Kernel bis zu mehreren Dutzend neue Schwachstellen markiert, die zuvor nicht als Sicherheitsprobleme identifiziert wurden. Beispielsweise wurden am 26. März neue CVE-Identifikatoren für 14 Schwachstellen vergeben, die zuvor nicht als Sicherheitsprobleme betrachtet wurden, und am 25. März wurden 41 Schwachstellen identifiziert.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster