- CVE-2024-1086 im Linux-Kernel-
nf_tableserzeugt durch fehlgeschlagene Eingabevalidierung von Netfilter-Verdicts ein Double-Free vonsk_buffund kann unter passenden Bedingungen zu lokaler Rechteausweitung führen - Der Angriffspfad sorgt dafür, dass ein während
NF_DROPfreigegebenes skb wieNF_ACCEPTweiterverarbeitet wird, sodass dasselbe Objekt später im Pfad erneut freigegeben wird - Das PoC wurde gegen KernelCTF-Mitigation, Debian, Ubuntu und Vanilla-Kernel verifiziert; mindestens der Bereich v5.14.21~v6.6.14 ist je nach kconfig betroffen, und im Februar 2024 wurde ein Fix in den Stable-Branches verteilt
- Der Kern ist Dirty Pagedirectory: PTE- und PMD-Seiten werden doppelt auf dieselbe physische Seite allokiert, sodass sich mit reinen User-Space-Lese-/Schreibzugriffen beliebige physische Adressen über einen datenorientierten KSMA-Ansatz ansprechen lassen
- In Kombination mit physischer KASLR-Erkundung,
modprobe_path-Umgehung, dateiloser Ausführung und File-Descriptor-Verknüpfung für Namespace-Escapes ergibt sich ein praxisnahes LPE-Beispiel, das zugleich Kernel-Speicherverwaltung und Netzwerk-Subsystem angreift
Bedingungen der Schwachstelle und betroffener Bereich
- Der
nf_tables-Bug ist als CVE-2024-1086 registriert; der Kern des Problems ist eine fehlgeschlagene Eingabevalidierung, die bei der Verdict-Verarbeitung in Linux Netfilter positive Drop-Errors zulässt - Für den Exploit sind folgende Bedingungen nötig
nf_tablesmuss aktiviert sein- Unprivilegierte User-Namespaces müssen aktiviert sein
- Bei großen Distributionen wie Debian und Ubuntu ist genau diese Standardkonfiguration die Angriffsgrundlage
- Nach den Tests gehören die Stable-Branches
linux-5.15.y,linux-6.1.y,linux-6.6.yzum betroffenen Bereich;linux-6.7.1ist ebenfalls möglich - Im Februar 2024 wurde ein Bugfix in den Stable-Branches ausgeliefert
- Der PoC-Quellcode ist im CVE-2024-1086 PoC repository veröffentlicht
Codepfad, der das Double-Free erzeugt
- Ein Netfilter-Verdict ist ein Wert, der entscheidet, ob ein Paket verworfen, akzeptiert, in eine Queue gestellt usw. wird
- Der verwundbare Ablauf beginnt damit, dass
nft_verdict_init()den vom Nutzer gelieferten Verdict-Wert nicht streng genug einschränkt, sodass sich ein Wert setzen lässt, der wieNF_DROPaussieht, dessen Drop-Error aber positiv ist nf_hook_slow()betrachtet die unteren Bits des Verdicts; wenn es alsNF_DROPerkannt wird, wird das skb zuerst mitkfree_skb_reason()freigegeben- Wenn danach das Ergebnis von
NF_DROP_GETERR()als ein Wert zurückkommt, derNF_ACCEPTentspricht, behandelt der aufrufende Code das Paket als akzeptiert und setzt die Verarbeitung fort - Dadurch wird ein bereits freigegebenes skb auf einem späteren Pfad erneut freigegeben, womit ein Double-Free-Primitive entsteht
Betroffene Objekte und Paketverarbeitung
- Das Double-Free betrifft
struct sk_buffausskbuff_head_cachesowie das Objektsk_buff->head sk_buff->headenthält den eigentlichen Paketinhalt und kann je nach Größe des IPv4-Pakets vonkmalloc-256bis zu order-4-Seiten des Buddy-Allocators allokiert werden- Das PoC ist so ausgelegt, große IP-Pakete zu verwenden, damit der Pfad über den Buddy-Allocator statt über den Slab-Allocator läuft
- Die IPv4-Fragmentation Queue wird genutzt, um das zweite Freigeben des skb zu verzögern oder gezielt zu einem gewünschten Zeitpunkt auszulösen
- Wenn beschädigte skb-Felder im Paketpfad verwendet werden, kann das zu einem Kernel-Panic führen; deshalb werden TCP-/UDP-Stacks vermieden und stattdessen bestimmte IPv4-Fragment-Fehlerpfade genutzt
Testumfang und Erfolgsquote
- In Umgebungen mit Vanilla-Kernel, KernelCTF, Debian und Ubuntu wurden mehrere Kernel-Versionen und Konfigurationen getestet
- Zu den erfolgreichen Fällen gehören folgende Umgebungen
- Linux v5.14.21, v5.15.148, v5.16.20, v5.17.15, v5.18.19, v5.19.17, v6.0.19
- Linux v6.1.55 mit KernelCTF Mitigation v3
- Linux v6.1.69 auf Debian Bookworm 6.1.0-17
- Linux v6.1.72 auf KernelCTF LTS
- Ubuntu Jammy v6.2.0-37
- Linux v6.2.16, v6.3.13
- Zu den fehlgeschlagenen Fällen zählen v5.4.270, v5.10.209, v6.4.16, Ubuntu Jammy v6.5.0-15, v6.5.13, v6.6.14, v6.7.1 und weitere
- Einige Fehlschläge ab v6.4.0 stehen mit der bad_page()-Erkennung durch
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=yin Verbindung - In der Umgebung v6.4.16 lag die Erfolgsquote bei 99,4 %, in manchen Fällen sank sie auf 93,0 %; die Stichprobengröße betrug jeweils n=1000
Art des Fixes
- Der zunächst vorgeschlagene Fix hätte in der Mitte des Netfilter-Stacks eine Breaking Change verursachen können
- Der Fix des Netfilter-Maintainers schränkt Verdicts aus Nutzereingaben bereits auf API-Ebene strenger ein
- Der Patch verwirft DROP-/QUEUE-Verdict-Parameter aus Userland-Eingaben
- Laut CVE-Beschreibung ließ
nft_verdict_init()positive Werte als Drop-Error im Hook-Verdict zu, undnf_hook_slow()konnte in einer Überlappung vonNF_DROPundNF_ACCEPTein Double-Free erzeugen - Der Fix ist unter [PATCH nf] netfilter: nf_tables: reject QUEUE/DROP verdict parameters. zu sehen
Dirty Pagedirectory und Zugriff auf beliebigen physischen Speicher
- Die zentrale Technik des PoC ist Dirty Pagedirectory, eine Abwandlung der bestehenden Technik Dirty Pagetable
- Die Kernidee ist, PTE-Seiten und PMD-Seiten doppelt auf dieselbe physische Seite zu allokieren
- Schreibt man in einem virtuellen Adressbereich Werte, die wie PTE-Einträge aussehen, interpretiert ein anderer virtueller Bereich diese als Seitentabelleneinträge und mappt damit die angegebene physische Seite
- So funktioniert der Ansatz als Kernel-Space-Mirroring-Angriff, der allein mit User-Space-Adress-Lese-/Schreibzugriffen beliebige physische Adressen mitsamt Berechtigungs-Flags setzt und anspricht
- Er wird eingesetzt, um Schutzmechanismen wie virtuelles KASLR, KPTI, SMAP, SMEP und
CONFIG_STATIC_USERMODEHELPERzu umgehen
Manipulation des Seiten-Allocators
- An der Seitenallokation im Kernel sind Slab-Allocator, Buddy-Allocator und PCP-Allocator beteiligt
- skb heads verwenden bei großen Größen order-4-Seiten des Buddy-Allocators, PTE-/PMD-Seiten dagegen order-0-Seiten, daher greifen sie nicht direkt ineinander
- Um das zu lösen, werden zwei Methoden der Page Conversion verwendet
- PCP list draining: Eine order-4-Seite wird in die Buddy-Freiliste gelegt, dann wird die PCP-order-0-Freiliste geleert, damit sie vom Buddy-Allocator erneut mit order-0-Seiten befüllt wird
- Race Condition: Während des zweiten Free wird ein Wettlauf ausgenutzt, um eine order-4-Seite in die order-0-Freiliste zu bringen
- PCP list draining ist die einfachere, stabilere und schnellere Methode
- Die Race-Condition-Methode wurde in einem frühen KernelCTF-Exploit verwendet, gilt aber als obsolet, weil sie von Umgebungen mit hoher Serial-TTY-Latenz wie QEMU-VMs abhängt
Umgehung der KernelCTF-Mitigation
- In der KernelCTF-Mitigation-Umgebung war die aktiv zu umgehende Schutzmaßnahme die Freilist-Corruption-Prüfung für
sk_buff skbuff_head_cache->offset == 0x70, daher überlappt der Freilist-Next-Pointer mitskb->len- Nach dem ersten Free des skb wird
skb->lenteilweise durch den Freilist-Pointer überschrieben; wenn sich dieser Wert später beim Paket-Parsing ändert, kann die Corruption-Prüfung anschlagen - Die Erkennung wird umgangen, indem über dem beschädigten skb zusätzlich ein normales skb freigegeben wird, das den Freilist-Head überschreibt
- KernelCTF-Entwickler sehen eine mögliche Gegenmaßnahme darin, den Next-Pointer des Freilist-Heads auch beim Free-Zeitpunkt zu prüfen
TLB-Flush und Erkundung von physischem KASLR
- Wenn Dirty Pagedirectory Seitentabellen auf unerwartete Weise verändert, können veraltete Übersetzungsinformationen im TLB-Cache der CPU verbleiben
- Der TLB wird geleert, indem aus dem User Space per
fork()ein Kindprozess erzeugt wird, dermunmap()ausführt und dann schläft - Dieses Verfahren funktionierte laut Tests auf AMD-CPUs und in QEMU-VMs zu 100 %
- Physisches KASLR lässt sich eingrenzen, weil die physische Basis des Kernels an
CONFIG_PHYSICAL_STARToderCONFIG_PHYSICAL_ALIGNausgerichtet ist - Bei 8 GiB physischem Speicher und 16 MiB Alignment gibt es 512 Kandidaten; mit dem Skript get-sig wird eine Signatur der Kernel-Basis erzeugt und zur Identifikation genutzt
modprobe_path und Erlangung einer Root-Shell
- Sobald beliebiger physischer Speicher gelesen und geschrieben werden kann, scannt das PoC einen Bereich von rund 80 MiB hinter der Kernel-Basis, um
modprobe_pathzu finden - In typischen Konfigurationen wird nach dem Muster
"/sbin/modprobe"mit Null-Padding gesucht und die tatsächliche Variable darüber verifiziert, ob sich Änderungen in/proc/sys/kernel/modprobewiderspiegeln - Ist
CONFIG_STATIC_USERMODEHELPERaktiviert, wird stattdessen auf die Zeichenkette"/sbin/usermode-helper"gezielt - Um eine Root-Shell zu erhalten, wird
modprobe_pathoder die Zeichenkette des statischen Usermode-Helpers durch einen memfd-Pfad der Form/proc/<pid>/fd/<fd>überschrieben - Das Privilege-Escalation-Skript verbindet die File Descriptors des Exploits mit stdin/stdout der Shell, sodass es sowohl auf einem lokalen Terminal als auch mit Reverse Shell funktioniert
Dateilose Ausführung und Aufbau des PoC
- Das PoC unterstützt fileless execution, also die Ausführung ohne Dateien auf die Platte zu schreiben
- Ist auf dem Ziel Perl vorhanden, kann das Exploit-Binary per
memfd_create()in den Speicher geladen und über/proc/$$/fd/<fd>ausgeführt werden - Die Build-Abhängigkeiten sind
libnftnl-devundlibmnl-dev - Für statische Builds für KernelCTF wurde
musl-gccverwendet, um statisches glibc-Linking und Probleme mit QEMU-AVX512-Opcode zu vermeiden - Der Exploit-Quellcode ist auf mehrere Dateien verteilt und setzt aufgrund des Ziels als Standalone-Binary bei Fehlern eher auf crash/exit statt auf die Rückgabe von Error Codes
Stabilität und Grenzen
- Der Zustand der Pagetables des Exploit-Prozesses kann instabil werden; um Kernel-Instabilität zu verringern, wird der Kindprozess nach Erfolg oder Fehlschlag nicht beendet, sondern im Sleep-Zustand belassen
- Netzwerkaktivität kann Rauschen in der skb-Freiliste erzeugen und damit die Stabilität beeinträchtigen
- In SSH- oder Reverse-Shell-Umgebungen wird die stdout-Ausgabe rund um den Double-Free-Zeitpunkt reduziert, um skb-Allokationen/Freigaben durch Netzwerkverkehr zu minimieren
- In einigen Hardware-Tests stürzte das System nach wenigen Sekunden ab; da auch WiFi-Frames skb verwenden, könnte WiFi-Aktivität Einfluss gehabt haben
- Wird der WiFi-Adapter im BIOS deaktiviert, funktioniert der Exploit in dieser Umgebung normal
Erkenntnisse aus dem Forschungsprozess
- Das PoC wurde auf breite Kompatibilität, hohe Stabilität und verdeckte Ausführung hin ausgearbeitet
- Zusätzlich zu zwei Monaten Entwicklungszeit wurden weitere zwei Monate in Stabilitäts- und Kompatibilitätsverbesserungen investiert
- Der Exploit selbst hängt nicht stark vom Verhalten des Slab-Allocators ab, sondern konzentriert sich auf breit aktivierte Funktionen wie das IPv4-Subsystem und den virtuellen Speicher
- Der ursprüngliche Bug setzt zwar unprivilegierte User-Namespaces und nftables voraus, Techniken wie Dirty Pagedirectory und PCP draining können aber auch in anderen realen Exploits eingesetzt werden
- Die Arbeit bleibt ein Beispiel dafür, wie gleichzeitig das Networking-Subsystem und das Memory-Management-Subsystem des Linux-Kernels angegriffen werden
1 Kommentare
Hacker-News-Kommentare
Heute wurde ein Proof-of-Concept-Exploit für CVE-2024-1086 veröffentlicht; er funktioniert unter anderem auf Debian und Ubuntu.
Betroffen sind Linux-Kernel v5.14 bis v6.6; ob v6.4 bis v6.6 unterstützt werden, hängt von der Kernel-Konfiguration
CONFIG_INIT_ON_ALLOC_DEFAULT_ONab.Dieser Bug wurde im Februar 2024 gepatcht, daher sollten Linux-Systeme aktualisiert werden.
https://github.com/Notselwyn/CVE-2024-1086/blob/main/src/mai...
modprobe_path-Ansatz genutzt wurde und wegen des dateilosen Ansatzes sogar PID-Bruteforcing eingebaut wurde.Ich würde zum Beispiel fragen, warum man sich nicht dafür entschieden hat, Kernel-
.textmit kurzer Shellcode zu patchen, um root zu werden und aus dem Namespace auszubrechen.Allerdings steht dort, dass die gepatchten Branches
v5.15.149>,v6.1.76>,v6.6.15>ausgenommen sind.Im Patch steht dieser Satz: „This reverts commit e0abdadcc6e1. [...] Its not clear to me why this commit was made.“
Ich frage mich, ob jemand die Hintergrundgeschichte dieses Commits recherchiert hat.
[1] https://lore.kernel.org/all/20240120215012.129529-1-fw@strle...
Ich habe alte netdev-Listen durchsucht, aber nichts gefunden; möglicherweise war es ein Patch, der direkt an den Committer Pablo Neira Ayuso geschickt wurde.
Der ursprüngliche Autor war Patrick McHardy, der inzwischen zur Persona non grata geworden ist, und sofern Pablo sich nicht erinnert oder es in seinen Mails findet, dürfte der genaue Use Case mit einer einfachen Recherche kaum zu klären sein.
netfilter: nf_tables: accept QUEUE/DROP verdict parameters; damit kann der Userspace beiQUEUE- undDROP-Verdicts eine Queue-Nummer oder einen errno-Code angeben.Dieser Artikel ist auch aus Sicht des Security-Schreibens sehr beeindruckend.
Beim Schreiben von Security-Blogs ist immer die Frage, „wie viel Hintergrund- und Vorwissen man voraussetzen soll“; eine Balance zu finden, die zugänglich und zugleich machbar zu schreiben ist, ist schwierig.
Weil gut zuerst die Zielgruppe festgelegt und ausreichend Hintergrund erklärt wurde, habe ich ihn als Material gebookmarkt, das ich angehenden Forschern geben möchte, die ich jedes Jahr treffe.
Dieser Exploit hängt vom Zugriff auf unprivilegierte User-Namespaces ab:
sysctl kernel.unprivileged_userns_clone = 1Das ist der Standardwert der Kernel von Debian/Ubuntu und Arch Linux; wenn man ihn nicht braucht, etwa um Docker-Befehle ohne sudo auszuführen, sollte man ihn besser deaktivieren.
Auch die Chrome-Sandbox, die etwa von Electron-Apps oder 1Password verwendet wird, hängt damit zusammen; das Sandbox-Hilfsbinary kann auch als setuid-Programm funktionieren.
Es wäre nicht überraschend, wenn auch Proton künftig anfängt, User-Namespaces zu verwenden; daher ist es auf einem normalen Desktop-Linux möglicherweise besser, sie nicht zu deaktivieren.
Auf Servern oder speziell gehärteten Linux-Systemen ist es oft keine schlechte Idee, sie abzuschalten.
Das Problem ist, dass Container, damit sie „einfach funktionieren“, im Netzwerkbereich zahllose Hacks brauchen, und Dockers zentrales Verkaufsargument kommt dem ziemlich nahe, einem diese gefährlichen Hacks abzunehmen.
Am Ende akzeptiert jede Container-Lösung solche Hacks, und selbst wenn normale Namespace-Funktionen den Zugriff reduzieren, öffnet der Kernel wegen der Netzwerk-Hacks wieder die Tür.
Ich verstehe nicht, warum unprivilegierte User-Namespaces standardmäßig aktiviert sind.
Selbst wenn es innerhalb eines „unprivilegierten“ Namespace läuft: Warum gibt man Nutzern standardmäßig die Möglichkeit, Dinge wie iptables oder mount auszuführen?
Chrome verwendet zum Beispiel Namespaces, um Prozess-Sandboxing zu implementieren, installiert aber ein setuid-root-Binary, damit es auch ohne unprivilegierte Namespaces funktioniert.
Da ein setuid-root-Binary selbst ein Sicherheitsrisiko ist, wäre es langfristig wünschenswert, wenn Chrome kein solches Binary mehr installieren müsste.
Dafür müssten unprivilegierte User-Namespaces jedoch breit verfügbar sein, und Bugs wie dieser verzögern diese Zukunft.
Außerdem verwenden Programme wie Chrome, die Namespace-basierte Sandboxes aufbauen, häufig auch seccomp, um zu verhindern, dass Code innerhalb der Sandbox ungewöhnliche Kernel-Funktionen wie Namespaces nutzt.
Auf einem Single-User-Desktop ist der Vorteil, die Trennung zwischen Nutzer und root stark durchzusetzen, nicht besonders groß, und das meiste Interessante ist ohnehin auch vom Benutzerkonto aus zugänglich.
Eine Sandbox wie die von Chrome ist dagegen für die Desktop-Sicherheit essenziell; daher sehe ich es auf einem Single-User-Desktop eher so, dass aktivierte unprivilegierte User-Namespaces die Gesamtsicherheit erhöhen.
Multi-User-Systeme sind natürlich eine andere Geschichte.
Wenn es diese Bugs nicht ständig gäbe, wären unprivilegierte User-Namespaces eine großartige Sicherheitsfunktion
Es wäre zum Beispiel gut, wenn Flatpak zum Ausführen für die App-Isolation keine setuid-Binaries auf dem Host benötigen würde
Die meisten Defaults sind nicht sicher und erfordern technisches Wissen sowie Härtungsmaßnahmen
Der Commit, der das Problem eingeführt hat: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
In einem verschachtelten
switch/casegibt es im Default-Pfad einreturn, danach wird aber offenbar Fall-through erwartet; diese Struktur wirkt seltsamhttps://lwn.net/Articles/882397/
https://bugs.launchpad.net/bugs/cve/2024-1086
Eine Use-after-free-Schwachstelle in der Komponente
netfilter: nf_tablesdes Linux-Kernels ermöglicht lokale RechteausweitungDie Funktion
nft_verdict_init()erlaubt innerhalb eines Hook-Verdicts positive Werte als Drop-Error; dadurch kannnf_hook_slow()NF_DROPmit einem Drop-Error behandeln, der wieNF_ACCEPTaussieht, was zu einer Double-free-Schwachstelle führen kannEs wird empfohlen, auf eine Version nach
f342de4e2f33e0e39165d8639387aa6c19dff660zu aktualisierenIch frage mich, wie solche Exploits trotz moderner Mitigations wie ASLR möglich sind
In einer Uni-Vorlesung bekamen wir mehrere Binaries, die auf einer bestimmten Ubuntu-Version laufen sollten, und mussten Bugs wie Use-after-free oder Buffer Overflows finden und ausnutzen; das war wirklich schwierig
Schon die Schwachstelle zu finden ist schwer, und noch schwerer ist es, präzisen Shellcode zu schreiben, der mit dieser Schwachstelle etwas Nützliches tut
In den schwierigeren Stufen waren auch Mitigations wie ASLR und Stack Canaries aktiviert, und selbst in der kontrollierten Umgebung für Studierende fühlte es sich nahezu unmöglich an
Am Ende muss man 1) eine ausnutzbare Schwachstelle entdecken und 2) einen exakten binären Payload finden, der etwas Nützliches tut, ohne das Programm einfach abstürzen zu lassen; in der realen Welt dürfte das noch schwieriger sein, daher frage ich mich, wie das möglich ist
[0] https://web.stanford.edu/class/archive/cs/cs107/cs107.1194/a...
Parallel zu anderen Kursen dürfte die verfügbare Zeit pro Bug nur einige Stunden bis wenige Tage betragen haben
Zerodium zahlt für eine gewöhnliche lokale Rechteausweitung unter Linux 50.000 Dollar; gemessen an den Kosten erfahrener Exploit-Entwickler kann man dafür grob 200 Personenstunden kaufen
Mit anderen Worten investieren Experten 10- bis 100-mal mehr Zeit als unerfahrene Studierende
Man kann sich den Unterschied zwischen jemandem vorstellen, der zum ersten Mal in eine Holzwerkstatt geht, und einem Schreiner, zwischen einem Keramik-Anfänger und einem Meister, zwischen einem Erstsemester-Maler und einem professionellen Künstler
Und dazu kommt noch 10- bis 100-mal mehr Zeitaufwand
[1] https://zerodium.com/program.html
Es gibt „klassische“ Techniken, um die meisten aktuellen Schutzmechanismen zu umgehen, und wenn nicht, entstehen neue Angriffe oder Bypass-Methoden
Für das Umgehen von Heap-Schutzmechanismen kann man sich zum Beispiel how2heap ansehen[0]; es gab auch Beispiele für Exploits, die KASLR umgehen[1], und dieser Exploit scheint die dirty pagetable-Technik zu verwenden[2]
Es ist ein fortlaufendes Katz-und-Maus-Spiel, bei dem Mitigations hinzugefügt werden und Forschende Wege finden, sie zu umgehen
[0] https://github.com/shellphish/how2heap
[1] https://www.willsroot.io/2022/12/entrybleed.html
[2] https://pwning.tech/nftables/#452-the-technique
Um so etwas zu finden, reicht eine Person aus der letzten Gruppe
Heutzutage ist es wirklich schwierig, und selbst wenn man die Mitigations abschaltet, ist es weiterhin nicht leicht, Schwachstellen zu finden und Exploits zu schreiben
Allerdings arbeiten viele der Leute, die solche Schwachstellen finden, in Teams, parallelisieren Fuzzing und können Wissen sowie andere Exploits kombinieren oder chainen
Die Expertise und das Talent einiger Forschender sind erstaunlich, und in diesem Bereich sind Jahre bis Jahrzehnte an Erfahrung enorm wertvoll
Wenn man aber davon ausgeht, dass die heute entdeckten großen Bugs von gut finanzierten Teams oder staatlichen Akteuren gefunden werden, ist es verständlicher, dass sie mit viel Personal und Ressourcen bestehende Mitigations umgehen können
Laut Ubuntu sind alle LTS-Releases betroffen und in den derzeit gepatchten Kerneln behoben: https://ubuntu.com/security/CVE-2024-1086
Focal ist ab
5.4.0-174.193behoben, Jammy ab5.15.0-101.111, Mantic ab6.5.0-26.26Bei Nutzung von Extended Support sind auch Xenial und Bionic enthalten
Ich habe es auf einem anfälligen Debian-System ausgeführt: Eine Rechteausweitung gelang zwar nicht, aber beim zweiten Lauf fror das gesamte System ein.
Der erste Lauf ist einfach fehlgeschlagen, daher lohnt es sich trotzdem definitiv, Zeit in das Patchen zu investieren.
Die aktuellen Kernel-Einstellungen lassen sich in Dateien wie
/boot/configoder/proc/config.gzüberprüfen.