Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/baph00met/cve-2026-41651
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsRed TeamingLabs & Praxis
GitHubbaph00met/cve-2026-41651

CVE-2026-41651

Proof-of-Concept-Exploit für CVE-2026-41651, eine lokale Privilegieneskalation durch TOCTOU in PackageKit, mit technischer Analyse, Erkennungslogik und Anleitung zur Behebung.

Repository anzeigen
17313vor 5 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

CVE-2026-41651 — PackageKit TOCTOU Lokale Rechteausweitung

Klassifizierung: Purple-Team-Bewertungsartefakt
Nur für autorisierte Nutzung. Dieses Dokument und das begleitende Testskript sind ausschließlich für interne Sicherheitsvalidierung auf Systemen bestimmt, für die eine schriftliche Genehmigung vorliegt.


Nachweis der Ausnutzung

Proof of exploitation


Inhaltsverzeichnis

  1. Überblick über die Schwachstelle
  2. Technische Analyse
  3. Beschreibung des Testskripts
    • Verhalten
    • Unterstützung gehärteter Umgebungen
    • Kompatibilität
  4. Indikatoren für eine Kompromittierung
    • Dateisystem
    • Prozess & Ausführung
    • D-Bus-Aktivität
    • Audit-Log-Muster
    • Paketmanager-Artefakte
    • Artefakte der Rechteausweitung
  5. Erkennungslogik
  6. Betroffene Systeme & Versionen
  7. Behebung
  8. Referenzen

Überblick über die Schwachstelle

FeldWert
CVE-IDCVE-2026-41651
CWECWE-367 — Time-of-check Time-of-use (TOCTOU) Race Condition
KomponentePackageKit (packagekitd, D-Bus-Dienst)
BetroffenPackageKit ≤ 1.3.4
Behoben inPackageKit 1.3.5
AuswirkungLokale Rechteausweitung → root
AngriffsvektorLokal / D-Bus (Sitzung ohne Privilegien)
Offengelegt2026-04-22 (Deutsche Telekom Red Team)
AdvisoryGHSA-f55j-vvr9-69xv
Fix-Commit76cfb675fb31acc3ad5595d4380bfff56d2a8697

PackageKit ist eine D-Bus-Abstraktionsschicht für die Systempaketverwaltung, die standardmäßig auf GNOME-basierten Desktops unter Debian, Ubuntu, Fedora, RHEL, SUSE und Arch Linux vorhanden ist. Da es privilegierte Paketoperationen im Namen von Benutzern ohne Privilegien vermittelt, hat ein Fehler in seinem Autorisierungsablauf systemweite Root-Auswirkungen.


Technische Analyse

Grundursache

pk-transaction.c (vor 1.3.5) erzwang keine Zustandsprüfung bei erneuter Aufrufung von Aktionsmethoden. Ein D-Bus-Client konnte InstallFiles (oder andere Aktionsmethoden) mehrfach auf demselben Transaktionsobjekt aufrufen, nachdem es bereits aus PK_TRANSACTION_STATE_NEW übergegangen war.

Angriffskette

Angreifer (ohne Privilegien)
  │
  ├─① CreateTransaction()          → PackageKit gibt Objektpfad der Transaktion zurück (tid)
  │
  ├─② InstallFiles(tid, FLAG_SIMULATE=4, [dummy.pkg])
  │       PackageKit stellt eine polkit-Autorisierungsprüfung für dummy.pkg in die Warteschlange.
  │       Es findet noch keine Installation statt — SIMULATE bedeutet nur Trockenlauf.
  │
  ├─③ InstallFiles(tid, FLAG_NONE=0, [payload.pkg])   ← TOCTOU-Fenster
  │       Ruft dasselbe tid erneut auf, bevor die Autorisierung aufgelöst wird.
  │       Verwundbare Versionen überschreiben die in der Warteschlange befindlichen Parameter mit payload.pkg.
  │
  └─④ polkit gewährt Autorisierung (Benutzer genehmigt oder automatisch autorisiert)
          packagekitd installiert payload.pkg als root.
          payload postinst/post-Skript: install -m 4755 /bin/bash /tmp/.suid_bash
          Angreifer führt /tmp/.suid_bash -p aus  →  Root-Shell.

Warum das Rennen gewinnt

Die Schritte ② und ③ werden als nicht blockierende asynchrone D-Bus-Aufrufe auf derselben Verbindung gesendet und in einem einzigen Schreibvorgang geleert. Die beiden Nachrichten treffen bei packagekitd ein, bevor es ② verarbeiten und die Zustandsmaschine vorantreiben kann, wodurch das TOCTOU-Fenster offen bleibt. Der Fix in 1.3.5 fügt eine explizite Zustandsprüfung hinzu, die bei jeder erneuten Aufrufung nach PK_TRANSACTION_STATE_NEW PK_TRANSACTION_ERROR_INVALID_STATE zurückgibt.


Beschreibung des Testskripts

Datei: cve-2026-41651-purpleteam.py
Sprache: Python 3
Abhängigkeiten: python3-gi (GObject-Introspection / GLib-Gio-Bindungen)

Zweck

Demonstriert die Ausnutzbarkeit von CVE-2026-41651 auf einem vorbereiteten Testsystem für folgende Zwecke:

  • Validierung, ob die installierte PackageKit-Version verwundbar ist
  • Erzeugung realistischer IOC-Telemetrie für die SIEM/EDR-Abstimmung
  • Testen der Erkennungsabdeckung vor und nach dem Patchen

Verhalten

PhaseAktion
EinrichtungUntersucht /proc/mounts, um ein SUID-/exec-fähiges Ablageverzeichnis auszuwählen, setzt umask(022), wendet explizites chmod auf alle Build-Artefakte an und erstellt dann ein Dummy- und ein Payload-Paket in /tmp
ExploitÖffnet eine System-D-Bus-Verbindung, erstellt eine PackageKit-Transaktion, löst das Zwei-Aufruf-Rennen aus
PayloadDas Post-Installationsskript des Pakets kopiert /bin/bash nach <drop_dir>/.suid_bash mit Modus 04755, Besitzer root. Das Ablageverzeichnis wird zur Laufzeit aufgelöst (siehe Unterstützung gehärteter Umgebungen)
AusweitungFragt nach der SUID-Binärdatei (90-s-Timeout) und führt dann execl mit -p für eine Root-Shell aus
BereinigungEntfernt die temporären .deb/.rpm-Dateien beim Beenden (Erfolg oder Fehlschlag)

Unterstützung gehärteter Umgebungen

Standardmäßig gehärtete Systeme können den Exploit an zwei unabhängigen Punkten blockieren. Das Skript behandelt beide automatisch.

1. Restriktive umask (027 / 077)

Eine prozessvererbte umask von 027 oder 077 führt dazu, dass mkdir() Verzeichnisse mit 750 oder 700 erzeugt. Sowohl dpkg-deb als auch rpmbuild müssen den gesamten Build-Baum durchlaufen — wenn ein Verzeichnis nicht lesbar ist, schlägt der Build still fehl.

Angewendeter Fix: os.umask(0o022) wird beim Start aufgerufen, bevor eine Datei oder ein Verzeichnis erstellt wird. Zusätzlich erhält jedes Verzeichnis und jede Datei im Build-Baum unmittelbar nach der Erstellung ein explizites chmod (0o755 für Verzeichnisse und Skripte, 0o644 für Datendateien), sodass die korrekten Berechtigungen unabhängig von der geerbten umask garantiert sind.

2. nosuid / noexec-Mount-Flags auf /tmp

FlagAuswirkung auf den Exploit
nosuidDer Kernel entfernt still das SUID-Bit von jeder Datei, die auf diesem Dateisystem gespeichert ist — die kopierte bash wird nie root
noexecDie SUID-Binärdatei kann überhaupt nicht ausgeführt werden
Tool herunterladen