Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-31431 — Detektor und Proof-of-Concept für eine Linux-Kernel-Schwachstelle im Page-Cache-Schreibvorgang (CVE-2026-31431) in algif_aead, einschließlich eines nicht-destruktiven Scanners und eines lokalen Privilege-Escalation-Exploits. | Kitploit
Tools/GitHubGitHub/zhanghangorg/cve-2026-31431
Privilege EscalationExploit-FrameworksSchwachstellenanalyseExploitationBinary-Exploitation
GitHubzhanghangorg/cve-2026-31431

cve-2026-31431

Detektor und Proof-of-Concept für eine Linux-Kernel-Schwachstelle im Page-Cache-Schreibvorgang (CVE-2026-31431) in algif_aead, einschließlich eines nicht-destruktiven Scanners und eines lokalen Privilege-Escalation-Exploits.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 3 MonatenNoch nicht geprüft

CVE-2026-31431 (Copy Fail) Toolset

Dieses Repository enthält Detektor und PoC für die Linux-algif_aead-/authencesn-Seitencache-Scratch-Write-Schwachstelle CVE-2026-31431.

Offenlegungsartikel: https://xint.io/blog/copy-fail-linux-distributions

Autorisierungshinweis

Nur auf Hosts verwenden, die dir gehören oder für die du ausdrücklich autorisiert bist. Der Detektor ist zerstörungsfrei und arbeitet nur mit Sentinel-Dateien in temporären Verzeichnissen; PoC und LPE verändern den Seitencache-Zustand im Speicher und sind echte lokale Privilege-Escalation-Techniken – eine nicht autorisierte Ausführung ist in der Regel illegal.

Überblick über die Schwachstelle

algif_aead führt AEAD-Operationen in-place aus, d. h. req->src == req->dst. Wenn Eingabedaten über splice() aus einer regulären Datei eingespeist werden, enthält die Ziel-Scatterlist Referenzen auf die Seitencache-Seiten dieser Datei, sodass der Kernel in die Seitencache-Kopie der Datei schreiben kann.

authencesn(hmac(sha256),cbc(aes)) führt einen 4-Byte-Scratch-Write auf das seqno_lo-Feld in der AAD (Bytes 4 bis 7 der AAD) aus. In Kombination mit der oben genannten In-place-AEAD- und splice()-Pfad kann ein Angreifer diese 4 Bytes in eine Seitencache-Seite einer lesbaren Datei schreiben lassen.

Diese Änderung wird nicht auf die Festplatte zurückgeschrieben, sie betrifft nur den aktuellen Kernel-Seitencache. Der Dateiinhalt auf der Festplatte bleibt daher unverändert, aber Leser, die diesen Seitencache gemeinsam nutzen, sehen den manipulierten Inhalt. World-readable Dateien wie /etc/passwd und /usr/bin/su können Ziel sein.

Dateibeschreibung

Release-Build kompilieren

Erfordert eine lokal installierte Rust-Toolchain und Cargo.

Alle Rust-Binaries kompilieren:

root@kitploit:~
cargo build --release --bins

Nach der Kompilierung werden erzeugt:

root@kitploit:~
target/release/cve_2026_31431_detector
target/release/cve_2026_31431_poc

Wenn vorkompilierte Dateien im Repository abgelegt werden sollen, bitte hier:

root@kitploit:~
dist/linux-x86_64/cve_2026_31431_detector
dist/linux-x86_64/cve_2026_31431_poc
dist/linux-x86_64/SHA256SUMS

Das gesamte target/-Verzeichnis nicht einchecken; es enthält Cargo-Zwischenprodukte und lokale Caches.

Nur den zerstörungsfreien Detektor kompilieren:

root@kitploit:~
cargo build --release --bin cve_2026_31431_detector

Nur die Rust-Version von poc.py kompilieren:

root@kitploit:~
cargo build --release --bin cve_2026_31431_poc

Prüfen, ob die Schwachstelle vorhanden ist

Der Rust-zerstörungsfreie Detektor wird empfohlen:

root@kitploit:~
./target/release/cve_2026_31431_detector
echo $?

Alternativ direkt über Cargo ausführen:

root@kitploit:~
cargo run --release --bin cve_2026_31431_detector
echo $?

Python-Detektor-Verwendung:

root@kitploit:~
python3 test_cve_2026_31431.py
echo $?

Bedeutung der Exit-Codes:

Exit-CodeBedeutung
0Keine Schwachstelle erkannt, oder Voraussetzungen nicht erfüllt, z. B. AF_ALG / authencesn nicht verfügbar.

Häufige Ausgaben zur Bewertung:

Vom Detektor ausgeführte Operationen:

  1. Prüft, ob AF_ALG und authencesn(hmac(sha256),cbc(aes)) verfügbar sind.
  2. Erstellt eine 4-KiB-Sentinel-Datei im temporären Verzeichnis.
  3. Sendet die AAD über sendmsg und setzt seqno_lo der AAD auf den Marker PWND.
  4. Speist über splice() die Seitencache-Seite der Sentinel-Datei in den AF_ALG-op-Socket ein.
  5. Ruft recv() auf, um die Algorithmusausführung anzustoßen.
  6. Liest die Sentinel-Datei erneut und prüft, ob der Marker oder andere Änderungen im Seitencache auftreten.

Der Detektor verändert /usr/bin/su, /etc/passwd oder andere Systemdateien nicht. Die temporäre Sentinel-Datei wird beim Beenden gelöscht.

PoC ausführen

Rust-Version von poc.py:

root@kitploit:~
./target/release/cve_2026_31431_poc

oder:

root@kitploit:~
cargo run --release --bin cve_2026_31431_poc

Hinweis: Dieser PoC öffnet gemäß der Logik von poc.py /usr/bin/su, verschmutzt über die Schwachstellen-Primitive dessen Seitencache-Kopie und führt dann su aus. Dies ist kein zerstörungsfreier Erkennungsablauf und sollte nur in autorisierten Testumgebungen ausgeführt werden.

Python-LPE-Verwendung

root@kitploit:~
python3 exploit_cve_2026_31431.py
python3 exploit_cve_2026_31431.py --shell

Dieses Skript sucht das UID-Feld des aktuellen Benutzers in /etc/passwd und versucht, die UID im Seitencache auf 0000 zu ändern. Die /etc/passwd-Datei auf der Festplatte wird nicht verändert, aber Systemprozesse können beim Lesen des Seitencaches den manipulierten Inhalt sehen.

Einschränkungen:

  • Die UID des aktuellen Benutzers muss 4-stellig sein, z. B. 1000 bis 9999.
  • NSS-Cache-Dienste wie nscd, sssd, systemd-userdbd können die Seitencache-Änderungen von /etc/passwd verschleiern.
  • Der Seitencache von /etc/passwd muss zwischen dem Patchen und dem Ausführen von su bestehen bleiben.

Seitencache bereinigen:

root@kitploit:~
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

Wenn bereits eine Root-Shell erlangt wurde, kann auch ausgeführt werden:

root@kitploit:~
echo 3 > /proc/sys/vm/drop_caches

Ein Neustart löscht ebenfalls den Seitencache-Zustand.

Abhilfemaßnahmen

Bis der Distributions-Kernel-Fix verfügbar ist, kann algif_aead deaktiviert werden:

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

Nach Anwendung der Abhilfemaßnahme sollte der Detektor in der Regel 检测结论:未发现漏洞 ausgeben und angeben, dass die Trigger-Voraussetzungen nicht erfüllt sind, mit Exit-Code 0.

Der Upstream-Fix-Ansatz besteht darin, die AEAD-Operation von der In-place-Verarbeitung zurück auf die Nicht-In-place-Verarbeitung umzustellen, um zu vermeiden, dass Seitencache-Seiten in eine beschreibbare Destination-Scatterlist gelangen.

Referenzen

  • Xint-Offenlegungsartikel: https://xint.io/blog/copy-fail-linux-distributions
  • CVE-2026-31431
Tool herunterladen
DateiBeschreibung
test_cve_2026_31431.pyPython-zerstörungsfreier Detektor. Arbeitet nur mit temporären Sentinel-Dateien, berührt keine Systemdateien.
src/main.rsRust-zerstörungsfreier Detektor. Erkennungslogik und Exit-Codes identisch mit dem Python-Detektor.
src/bin/poc.rsRust-Version von poc.py. Verschmutzt den Seitencache von /usr/bin/su und führt su aus.
poc.pyPython-PoC.
exploit_cve_2026_31431.pyPython-LPE. Versucht über die Verschmutzung des /etc/passwd-Seitencaches eine Root-Shell zu erhalten.
2Anfällig für CVE-2026-31431 erkannt.
1Fehler während des Tests; das Ergebnis kann nicht als Grundlage für die Schwachstellenbewertung dienen.
AusgabeSchlussfolgerung
检测结论:未发现漏洞Keine Schwachstelle erkannt, oder Trigger-Voraussetzungen nicht erfüllt.
检测结论:存在 CVE-2026-31431 漏洞Marker PWND erfolgreich in die gesplicete Seitencache-Seite gelangt, Schwachstelle vorhanden.
检测结论:存在疑似 CVE-2026-31431 漏洞Seitencache wurde verändert; auch wenn der Marker nicht an der erwarteten Position liegt, sollte dies als betroffen gelten.
测试过程出错,无法判断是否存在漏洞Erkennung fehlgeschlagen, Exit-Code 1; nach Fehlermeldung prüfen und erneut ausführen.