Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-41651 — PackageKit में TOCTOU race condition के माध्यम से स्थानीय विशेषाधिकार वृद्धि। | Kitploit
उपकरण/GitHubGitHub/gbuyssens/cve-2026-41651
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणCTFपेनिट्रेशन टेस्टिंग
GitHubgbuyssens/cve-2026-41651

CVE-2026-41651

PackageKit में TOCTOU race condition के माध्यम से स्थानीय विशेषाधिकार वृद्धि।

रिपॉजिटरी देखें
18 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

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

PackageKit के D-Bus ट्रांज़ैक्शन हैंडलर में TOCTOU रेस कंडीशन के ज़रिए लोकल प्रिविलेज एस्केलेशन।
कोई भी अनप्रिविलेज्ड लोकल यूज़र रूट के रूप में मनमाने पैकेज इंस्टॉल कर सकता है — एक लोकल सेशन होने के अलावा कोई ऑथेंटिकेशन आवश्यक नहीं।

केवल लैब / अधिकृत परीक्षण (HTB, CTF, लिखित स्कोप वाला एंगेजमेंट)।


उपयोग

root@kitploit:~
python3 exploit.py

बस इतना ही। /tmp/.suid_bash ड्रॉप करता है, फिर रूट शेल में exec करता है।

कस्टम SUID पाथ या टाइमआउट:

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

आवश्यकताएँ

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

एक्सप्लॉइट रनटाइम पर दो .deb पैकेज बनाता है — किसी कंपाइलर की आवश्यकता नहीं।


मूल कारण

src/pk-transaction.c में तीन बग एक श्रृंखला में जुड़ते हैं:

बग 1 — बिना शर्त फ्लैग ओवरराइट

InstallFiles() cached_transaction_flags और cached_full_paths को बिना किसी स्टेट चेक के ओवरराइट करता है। उसी ट्रांज़ैक्शन पर दूसरा D-Bus कॉल उन्हें आँख बंद करके बदल देता है — तब भी जब ट्रांज़ैक्शन पहले से चल रहा हो।

बग 2 — साइलेंट स्टेट-मशीन गार्ड

pk_transaction_set_state() अवैध पश्चगामी ट्रांज़िशन (RUNNING→READY, आदि) को बिना बग 1 के ओवरराइट किए गए फ्लैग को वापस रोल बैक किए अस्वीकार करता है। दूषित फ्लैग बने रहते हैं।

बग 3 — विलंबित फ्लैग रीड

pk_transaction_run() cached_transaction_flags को डिस्पैच समय (GLib idle) पर पढ़ता है, ऑथराइज़ेशन समय पर नहीं। बैकएंड हमलावर के फ्लैग देखता है।

बोनस — SIMULATE polkit को बायपास करता है

PK_TRANSACTION_FLAG_SIMULATE (0x4) सेट करने से polkit ऑथराइज़ेशन चेक पूरी तरह स्किप हो जाता है। कॉल 1 बिना किसी यूज़र इंटरैक्शन के ऑथराइज़ हो जाता है।


अटैक श्रृंखला

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)

दोनों कॉल GLib idle फायर होने से पहले पहुँच जाते हैं — जीतने के लिए कोई रेस नहीं है, यह डिटर्मिनिस्टिक है।


प्रभावित सिस्टम

Ubuntu Desktop 18.04–26.04, Debian Trixie, Fedora 43, RockyLinux 10.1, और कोई भी डिस्ट्रो जो डेमॉन सक्रिय होने पर PackageKit 1.0.2–1.3.4 शिप करती है।


निवारण

  1. PackageKit 1.3.5+ पर अपग्रेड करें
  2. अगर अपग्रेड संभव न हो तो सर्विस को मास्क करें: systemctl mask packagekit
  3. फिक्स एक स्टेट गार्ड जोड़ता है: transaction->state != PK_TRANSACTION_STATE_NEW → अस्वीकार करें

संदर्भ

  • NVD — CVE-2026-41651
  • GitHub Advisory — GHSA-f55j-vvr9-69xv
  • फिक्स कमिट
टूल डाउनलोड करें