
Pardus Software Lokale Privilegienausweitung PoC - betroffen von <= 1.0.4
Proof-of-concept- und exploitbereiter Code für zwei lokale Privilegienausweitungsprobleme im pardus-software-Paket (Pardus Software Center) Version 1.0.4, beide behoben in 1.0.5.
| CVE | Klasse | Zusammenfassung | CVSS 3.1 (CERT-TR) |
|---|---|---|---|
| CVE-2026-14459 | CWE-88 — Argument Injection | Ein Mitglied der pardus-software-Gruppe (kein sudo, kein Passwort) injiziert APT-Optionen (-o Dir::Bin::dpkg=…) in den privilegierten Helfer und führt beliebigen Code als root aus. | 8.8 HIGH |
| CVE-2026-14460 | CWE-862 — Missing Authorization | Die PolicyKit-Aktion autoaptupdateaction wird mit allow_any=yes ausgeliefert, sodass jeder lokale Benutzer den Update-Helfer als root ausführen kann, unauthentifiziert (lokaler DoS). | 8.8 HIGH |
Betroffen: pardus-software 1.0.4 · Behoben: pardus-software 1.0.5
Anbieter: Pardus / TÜBİTAK BİLGEM · Koordinierte Offenlegung über den Anbieter und USOM (CERT-TR).
Dieser Code wird veröffentlicht für defensive Forschung, Bildung und Überprüfung einer gepatchten, öffentlich bekanntgegebenen Sicherheitslücke. Beide Probleme sind in pardus-software 1.0.5 behoben.
Führen Sie ihn nur auf isolierten, wegwerfbaren virtuellen Maschinen aus, die Ihnen gehören oder für die Sie ausdrücklich zum Testen autorisiert sind. Führen Sie ihn nicht gegen Systeme aus, die Sie nicht kontrollieren. Sie sind für die Einhaltung aller geltenden Gesetze verantwortlich. Der Autor übernimmt keine Haftung für Missbrauch.
pardus-software-lpe/
├── README.md
├── poc/
│ └── poc.sh # original benign PoC (proof-only; both CVEs)
└── exploit/
├── exploit-14459.sh # CVE-2026-14459 → interactive root shell
└── exploit-14460.sh # CVE-2026-14460 → unauth root apt-update (DoS)
Ein einzelnes poc.sh deckt beide Ergebnisse über Unterbefehle ab:
Die poc/-Version ist gutartig: sie zeichnet lediglich die id-Ausgabe in /tmp/pardus_lpe_proof auf und hinterlegt eine setuid-root /tmp/rootbash als Beweis. Die exploit/-Versionen sind die bewaffneten Äquivalente, die eine Root-Shell ausgeben, zur Demonstration auf autorisierten Zielen.
poc.sh SHA256: 1d3f4c19affdb377ac5eee4c695619e9f6a4590350c3936678eb1db2cf601255
Das gutartige PoC enthält einen Helfer, um ein unprivilegiertes victim-Konto in der pardus-software-Gruppe (kein sudo) auf einer wegwerfbaren Pardus 25 VM zu erstellen:
sudo ./poc/poc.sh setup-victim
sudo cp poc/poc.sh /home/victim/ && sudo chown victim /home/victim/poc.sh
# CVE-2026-14459 — option injection (primary)
sudo su - victim -c 'cd ~ && ./poc.sh B'
# if 'hello' is already installed/unavailable: ./poc.sh B sl
# CVE-2026-14459 — local unsigned .deb (secondary)
sudo su - victim -c 'cd ~ && ./poc.sh A'
# CVE-2026-14460 — unauthenticated root apt update (any user, no special group)
sudo useradd -m -s /bin/bash nobody2
sudo cp poc/poc.sh /home/nobody2/ && sudo chown nobody2 /home/nobody2/poc.sh
sudo su - nobody2 -c 'cd ~ && ./poc.sh autoupdate'
Erwartet: keine Passwortabfrage; Ausgabe zeigt uid=0(root), /tmp/pardus_lpe_proof im Besitz von root und /tmp/rootbash als -rwsr-xr-x root root (setuid root). Bei B gibt APT auch seinen eigenen Hinweis aus, dass das injizierte Skript anstelle von dpkg ausgeführt wurde:
Warning: APT had planned for dpkg to do more than it reported back (0 vs 5).
Affected packages: hello:amd64
Führen Sie diese als den Ziel-unprivilegierten Benutzer aus (für 14459 ein Mitglied von pardus-software).
# CVE-2026-14459 → interactive root shell
./exploit/exploit-14459.sh
# run a single command as root instead of a shell:
./exploit/exploit-14459.sh -c "id > /root/pwned"
# if 'hello' is installed/unavailable, pick an uninstalled package:
PKG=sl ./exploit/exploit-14459.sh
# CVE-2026-14460 → unauthenticated root apt-update (local DoS)
./exploit/exploit-14460.sh
# demonstrate the DoS surface with repeated invocations:
./exploit/exploit-14460.sh -n 20
Auf einem gepatchten Host (>= 1.0.5) scheitern beide Skripte sauber und melden dies.
CVE-2026-14459. Die Methode install() in Actions.py teilt ihr packages-Argument an Leerzeichen auf und hängt die Token direkt an den apt-Argumentvektor an — keine Namensvalidierung, kein ---Optionsbegrenzer. Jedes Token, das wie eine APT-Option aussieht, wird berücksichtigt, einschließlich -o Dir::Bin::dpkg=<path>, welches das Paketmanager-Backend durch ein Angreifer-Skript ersetzt, das dann als root läuft. Das gleiche Muster existierte in remove/upgrade/reinstall/downgrade.
CVE-2026-14460. Die PolicyKit-Aktion autoaptupdateaction wurde mit allow_any=yes deklariert, wodurch jedes Subjekt ohne Authentifizierung autorisiert wurde. Jeder lokale Benutzer konnte AutoAptUpdate.py als root aufrufen — eine lokale DoS-Angriffsfläche.
Ausführliche technische Berichte (EN + TR): ([https://medium.com/@dasokkk/missing-authorization-in-pardus-software-center-any-local-user-can-run-apt-update-as-root-de4756d4c1a1] (https://medium.com/@dasokkk/local-privilege-escalation-in-pardus-software-center-via-apt-option-injection-cve-2026-14459-569ad65a2250))
Behoben in pardus-software 1.0.5:
a6ff277 — Paketnamen-Validierung (parse_packages()-Regex + ---Trennzeichen) für die apt-Aktionen (CVE-2026-14459).70210af — allow_any: yes → auth_admin für autoaptupdateaction (CVE-2026-14460).Wenn Sie Pardus verwenden, aktualisieren Sie auf pardus-software 1.0.5 oder neuer.
a6ff277 · 70210afForschung und koordinierte Offenlegung von Kerem Kaan Daşmaz.
| Unterbefehl | Beweist | Anmerkungen |
|---|
poc.sh B | CVE-2026-14459 | APT-Optionen-Injektion (-o Dir::Bin::dpkg) — der primäre Fund |
poc.sh A | CVE-2026-14459 | Lokales unsigniertes .deb über denselben Vertrauenspfad (sekundäre Demonstration) |
poc.sh autoupdate | CVE-2026-14460 | Unauthentifiziertes root apt update |