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
PinTheft-go — Eine Go-Implementierung von PinTheft (CVE-2026-43494) | Kitploit
Tools/GitHubGitHub/kagantua/pintheft-go
Privilege EscalationExploitationPost-ExploitationPayload-EntwicklungBinary-Exploitation
GitHubkagantua/pintheft-go

PinTheft-go

Eine Go-Implementierung von PinTheft (CVE-2026-43494)

Repository anzeigen
vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

pintheft-go

Go-Port von pintheft - RDS zcopy double-free LPE. Mitglied der Dirty Frag Sicherheitslückenklasse.

[!IMPORTANT] Arch Linux ist eine der am stärksten betroffenen Distributionen für diese Sicherheitslücke, da es zu den wenigen gehört, bei denen das RDS-Modul normalerweise standardmäßig geladen werden kann.

Wie es funktioniert (tl;dr)

Der Fehler befindet sich in rds_message_zcopy_from_user(). Die Funktion pinnt Benutzerseiten über GUP eine nach der anderen via FOLL_GET. Wenn eine spätere Seite einen Fehler auslöst (z.B. eine PROT_NONE-Schutzseite), ruft der Fehlerpfad put_page() auf bereits gepinnten Seiten auf, dann ruft rds_message_purge() erneut __free_page() auf sie auf, weil op_mmp_znotifier auf NULL gesetzt wurde, aber op_nents/sg-Einträge intakt blieben. Wenn die Seite noch andere Referenzen hat, dekrementiert __free_page stillschweigend den Referenzzähler. Jeder fehlschlagende sendmsg stiehlt genau eine Referenz von der ersten Seite.

Umgehen von CONFIG_INIT_ON_ALLOC_DEFAULT_ON

Pinnen Sie die Zielseite über io_uring REGISTER_BUFFERS, das den Referenzzähler über FOLL_PIN um GUP_PIN_COUNTING_BIAS (1024) erhöht. Stehlen Sie alle 1024 Pin-Referenzen mit fehlschlagenden Zcopy-sendmsg-Aufrufen. Der Seitenreferenzzähler ist jetzt ~1 (nur die PTE-Abbildung). munmap nimmt den normalen __folio_put-Pfad, der mem_cgroup_uncharge aufruft (löscht memcg_data), bevor die Seite freigegeben wird. Keine bad_page-Prüfung wird ausgelöst.

Hängender bvec-Schreibzugriff

io_uring behält den rohen struct page* in seinem bvec-Array ohne Lebendigkeitsprüfungen. Nachdem die Seite als Page Cache für eine suid-Binärdatei zurückgewonnen wurde, schreibt IORING_OP_READ_FIXED unsere Nutzlast über diesen hängenden Zeiger hinein.

Verhindern des Unpins beim Schließen des Rings

IORING_REGISTER_CLONE_BUFFERS erhöht imu->refs. Ein geforkter Daemon-Kindprozess hält den Clone-Ring-fd offen - io_buffer_unmap sieht refs > 1 und überspringt unpin_user_folio, wodurch eine Referenzzähler-Korrumpierung auf der freigegebenen Seite verhindert wird.

PCP LIFO

An CPU 0 binden, veraltete PCP-Einträge vor dem Freigeben leeren - unsere Seite landet oben, wenn der Page-Cache-Allokator sie abgreift.

Exploit-Kette

root@kitploit:~
REGISTER_BUFFERS(+1024) -> CLONE_BUFFERS(imu->refs=2) ->
daemon holds clone -> steal 1024 refs -> evict page cache ->
drain PCP -> munmap(free) -> pread(reclaim) ->
READ_FIXED(overwrite) -> verify -> exec -> root

Verwendung

root@kitploit:~
go build -o pintheft-go .
./pintheft-go

Bei Erfolg wird eine Root-Shell über PTY geöffnet. Die Binärdatei auf der Festplatte bleibt unverändert.

Bereinigung

root@kitploit:~
sudo cp /tmp/.backup_pintheft_<pid> /usr/bin/su && sudo chmod u+s /usr/bin/su

Voraussetzungen

  • Linux-Kernel mit ungepatchtem RDS + io_uring
  • CONFIG_RDS=m, CONFIG_RDS_TCP=m (automatisch geladen über SO_RDS_TRANSPORT=2)
  • CONFIG_IO_URING=y mit io_uring_disabled=0
  • Lesbare suid-root-Binärdatei
  • Keine Capabilities erforderlich

Referenzen

  • v12-security/pocs - pintheft - ursprünglicher C-PoC

Danksagungen

  • Aaron Esau / V12 team - Entdeckung der Sicherheitslücke und ursprünglicher PoC

übrigens, ich liebe Arch Linux :)

Tool herunterladen