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-41651 — Lokale Rechteausweitung durch TOCTOU-Race Condition in PackageKits. | Kitploit
Tools/GitHubGitHub/gbuyssens/cve-2026-41651
Privilege EscalationSchwachstellenanalyseExploitationCTFPenetrationstests
GitHubgbuyssens/cve-2026-41651

CVE-2026-41651

Lokale Rechteausweitung durch TOCTOU-Race Condition in PackageKits.

Repository anzeigen
3vor 1 MonatNoch 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

CVE-2026-41651

root@kitploit:~
CVSS 3.x : 7.8 HIGH
CWE      : CWE-367 (Time-of-Check Time-of-Use)
Fix      : PackageKit 1.3.5+
Affects  : PackageKit 1.0.2 – 1.3.4

Lokale Privilegieneskalation durch eine TOCTOU-Race-Condition im D-Bus-Transaktionshandler von PackageKit.
Jeder unprivilegierte lokale Benutzer kann beliebige Pakete als root installieren — es ist keine Authentifizierung erforderlich, nur eine lokale Sitzung.

Nur für Lab / autorisierte Tests (HTB, CTF, Engagement mit schriftlich festgelegtem Umfang).


Verwendung

root@kitploit:~
python3 exploit.py

Das war's. Erstellt /tmp/.suid_bash und wechselt dann per exec in eine Root-Shell.

Benutzerdefinierter SUID-Pfad oder Timeout:

root@kitploit:~
SUID_BIN=/dev/shm/.sh TIMEOUT=90 python3 exploit.py

Voraussetzungen

root@kitploit:~
apt install python3-gi dpkg-dev

Der Exploit baut zur Laufzeit zwei .deb-Pakete — es wird kein Compiler benötigt.


Grundursache

Drei Bugs in src/pk-transaction.c greifen ineinander:

Bug 1 — Bedingungsloses Überschreiben von Flags

InstallFiles() überschreibt cached_transaction_flags und cached_full_paths ohne Zustandsprüfung. Ein zweiter D-Bus-Aufruf auf derselben Transaktion ersetzt sie blind — sogar während die Transaktion bereits läuft.

Bug 2 — Stiller Zustandsmaschinen-Schutz

pk_transaction_set_state() lehnt unzulässige Rückwärtsübergänge (RUNNING→READY usw.) ab, ohne die von Bug 1 überschriebenen Flags zurückzusetzen. Die beschädigten Flags bleiben bestehen.

Bug 3 — Spätes Auslesen der Flags

pk_transaction_run() liest cached_transaction_flags zum Dispatch-Zeitpunkt (GLib idle), nicht zum Autorisierungszeitpunkt. Das Backend sieht die Flags des Angreifers.

Bonus — SIMULATE umgeht polkit

Das Setzen von PK_TRANSACTION_FLAG_SIMULATE (0x4) überspringt die polkit-Autorisierungsprüfung vollständig. Aufruf 1 wird ohne Benutzerinteraktion autorisiert.


Angriffskette

root@kitploit:~
Attacker                         packagekitd
   │                                  │
   │  CreateTransaction()             │  state = NEW
   │─────────────────────────────────►│
   │                                  │
   │  InstallFiles(SIMULATE, dummy)   │  polkit skipped (SIMULATE)
   │─────────────────────────────────►│  state = READY, idle queued
   │                                  │
   │  InstallFiles(NONE, payload)     │  flags+paths overwritten
   │─────────────────────────────────►│  set_state(WAITING_FOR_AUTH) rejected
   │                                  │  state stays READY (BUG 2)
   │                                  │
   │                      [idle fires]│
   │                                  │  pk_transaction_run() reads NONE (BUG 3)
   │                                  │  → dpkg installs payload as root
   │                                  │  → postinst: chmod +s /tmp/.suid_bash
   │                                  │
   │  execv("/tmp/.suid_bash -p")     │
   │─────────────────────────────────►│  euid=0(root)

Beide Aufrufe treffen ein, bevor der GLib-Idle ausgelöst wird — es gibt keine zu gewinnende Race, das Ganze ist deterministisch.


Betroffene Systeme

Ubuntu Desktop 18.04–26.04, Debian Trixie, Fedora 43, RockyLinux 10.1 sowie jede Distribution, die PackageKit 1.0.2–1.3.4 mit aktivem Daemon ausliefert.


Behebung

  1. Upgrade auf PackageKit 1.3.5+ durchführen
  2. Maskiere den Dienst, falls ein Upgrade nicht möglich ist: systemctl mask packagekit
  3. Der Fix fügt eine Zustandsprüfung hinzu: transaction->state != PK_TRANSACTION_STATE_NEW → ablehnen

Referenzen

  • NVD — CVE-2026-41651
  • GitHub Advisory — GHSA-f55j-vvr9-69xv
  • Fix-Commit
Tool herunterladen