FlawOpen

flawopen.com/Teardowns/cve-2026-73570-zimbra-snmp-command-injection

● CVE-2026-73570 · CVSS 8.9[5], [10] · उच्च
सुरक्षा अनुसंधान · FlawOpen

CVE-2026-73570: Zimbra के SNMP सूचना मार्ग में कमांड इंजेक्शन कैसे हुआ

CVE-2026-73570 Zimbra के वैकल्पिक SNMP सूचना मार्ग में प्रमाणीकरण-रहित कमांड इंजेक्शन है। विशेष रूप से बनाया गया ईमेल एक स्थिति मान को प्रभावित कर सकता था, जिसे बाद में shell कमांड में जोड़ा जाता था। Zimbra ने 10.1.20 में यह कॉल ठीक की। बाद में Microsoft ने बताया कि सार्वजनिक खुलासे से पहले स्कैनिंग टूल इस कमजोर मार्ग की जाँच कर रहे थे।[1], [2], [5]

CVSS वेक्टरCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L[5], [10]
💡 आसान भाषा में (ELI5)

डाक छँटाई कर्मचारी लिफ़ाफ़े का लेबल कार्य-पर्ची पर लिखता है। पुरानी प्रक्रिया पूरी पर्ची को कमांड समझने वाले प्रोग्राम को देती थी, जो लेबल के कुछ अक्षरों को अतिरिक्त निर्देश समझ सकता था। सुधार सूचना प्रोग्राम को अलग-अलग तर्कों की सूची देता है, इसलिए लेबल केवल डेटा रहता है।[8], [9], [3]

इस पेज के मुख्य शब्द

swatchdog
इस Zimbra मार्ग में लॉग देखने वाला प्रोग्राम, जो सेवा-स्थिति संदेश पहचानकर सूचनाएँ शुरू करता है।[1]
SNMP trap
घटना होने पर प्रबंधित सिस्टम से SNMP निगरानी रिसीवर को भेजी गई सूचना।[1]
Shell interpolation
ऐसी पाठ्य कमांड बनाना जिसे shell पढ़ता है। अविश्वसनीय मान के अक्षर कमांड का अर्थ बदल सकते हैं।[8], [7]
सूची-रूप system
Perl का बहु-तर्क system रूप प्रोग्राम को सीधे चलाता है और हर तर्क अलग देता है; shell से पूरी कमांड स्ट्रिंग नहीं पढ़वाता।[9], [3]

फ्रेमवर्क मैपिंग

मूल कारण विश्लेषण (Root Cause)

प्रभावित कोड rpmconf/Conf/swatchrc की dosnmp फ़ंक्शन में है। swatch नियम स्थिति-पंक्ति से सेवा का नाम लेता है और donotify के जरिए SERVICE के रूप में भेजता है; dosnmp इस मान को $snmptrap वाली backtick कमांड में जोड़ता था। Backtick shell चलाते हैं, इसलिए लॉग से आया मान कमांड सिंटैक्स बनकर पढ़ा जा सकता था। प्रकाशित पूर्वशर्तें एक साथ आवश्यक हैं: Zimbra Collaboration Suite 10.1.20 से पुराना हो, वैकल्पिक zimbra-snmp पैकेज इंस्टॉल हो और SNMP सूचनाएँ चालू हों। Microsoft के अनुसार विशेष रूप से बनाया गया SMTP इनपुट सूचना मार्ग तक पहुँच सकता था। कंपनी ने 28 जुलाई से 7 अगस्त 2026 तक स्कैनिंग टूल को कमजोर इंजेक्शन बिंदु की जाँच करते देखा—20 जुलाई के सुधार के बाद और 13 अगस्त के सार्वजनिक खुलासे से पहले। Zimbra का सुधार shell स्ट्रिंग को सूची-रूप system(...) से बदलता है और executable तथा तर्क अलग देता है; निष्पादन में shell शामिल नहीं रहता। यह विश्लेषण केवल SNMP सूचना कोड के बारे में है; इसका अर्थ यह नहीं कि हर Zimbra इंस्टॉलेशन या SMTP ईमेल प्रभावित है।[1], [2], [3], [5], [7]

CVE-2026-73570 की reachability और remediation matrix

Deployment की शर्तेंक्या दर्ज किया गया path लागू होता है?रक्षात्मक कार्रवाई
Zimbra Collaboration Suite 10.1.20 से पुराना; optional zimbra-snmp package installed; SNMP notifications enabled.दर्ज notification path के लिए तीनों शर्तें आवश्यक हैं। Microsoft के अनुसार crafted SMTP input service-status value को प्रभावित कर सकता था, जिसे बाद में dosnmp संभालता था।10.1.20 या बाद के संस्करण पर upgrade करें। exposure अवधि के संबंधित logs और process telemetry जाँचें; संकेतों को जाँच के सुराग मानें, compromise का प्रमाण नहीं।
zimbra-snmp package मौजूद नहीं, या SNMP notifications disabled हैं।इस configuration में बताया गया dosnmp notification path सक्रिय नहीं है। इससे यह साबित नहीं होता कि server अन्य vulnerabilities से मुक्त है।Server patch होने तक feature disabled रखें या package installed न रखें। सभी mailbox nodes की सूची बनाकर प्रत्येक की setting जाँचें।
Zimbra Collaboration Suite 10.1.20 या बाद का संस्करण और vendor-fixed package installed.दर्ज shell-command निर्माण 10.1.20 में ठीक किया गया। केवल version string से हर node या local modification की पुष्टि नहीं होती।हर node पर installed version और package सत्यापित करें। पहले की कोई अवधि तीनों exposure conditions पूरी करती थी तो सामान्य incident-triage प्रक्रिया अपनाएँ।

हमले का चरण-दर-चरण प्रवाह

चरण 1

पूर्वशर्तें पूरी हैं

10.1.20 से पुराना संस्करण, zimbra-snmp इंस्टॉल और SNMP सूचनाएँ चालू।[1]

चरण 2

ईमेल निगरानी मान को प्रभावित करता है

Microsoft ने बताया कि SMTP अनुरोध लॉग में दर्ज स्थिति मान को प्रभावित कर सकता था। exploit स्ट्रिंग और नेटवर्क कदम शामिल नहीं हैं।[1]

चरण 3

swatchdog मान आगे भेजता है

नियम सेवा फ़ील्ड लेकर सक्रिय सूचना व्यवस्था में donotify के जरिए dosnmp तक भेजता है।[1]

चरण 4

Shell डेटा को कमांड की तरह पढ़ता है

सुधार से पहले Perl backtick captured मान वाली स्ट्रिंग को Zimbra सेवा खाते के रूप में shell तक पहुँचाते थे।[1]

चरण 5

10.1.20 shell हटाता है

सुधार snmptrap को अलग तर्क देता है। अपडेट करें और उजागर सिस्टम जाँचें; सुधार पिछली गतिविधि को नकारता नहीं है।[1]

सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन

कमज़ोर backtick interpolated स्ट्रिंग को shell तक पहुँचाता था। upstream सुधार कई तर्कों वाला system उपयोग करता है और प्रोग्राम तथा हर तर्क अलग देता है, इसलिए SERVICE के metacharacters shell निर्देश नहीं बनते। यह बदली गई कॉल का अंश है, चलने योग्य exploit या पूरी फ़ाइल नहीं।[3], [4], [8], [9]

सोर्स अंश: rpmconf/Conf/swatchrc: dosnmp

कमज़ोर कार्यान्वयन
# प्रभावित dosnmp का संक्षिप्त अंश; exploit इनपुट नहीं दिखाया गया।
sub dosnmp {
    my %args = (@_);
    `$snmptrap $snmpsvctrap $snmpsvcname s $args{SERVICE} $snmpsvcstatus i $statuses{$args{STATUS}}`;
}
सुरक्षित और सुदृढ़ फ़िक्स
# Zimbra 10.1.20 सुधार: प्रोग्राम को अलग तर्कों के साथ सीधे चलाएँ।
sub dosnmp {
    my %args = (@_);
    system(
        "/opt/zimbra/common/bin/snmptrap",
        "-v", "2c", "-c", "zimbra", $traphost, "",
        $snmpsvctrap, $snmpsvcname, "s", $args{SERVICE},
        $snmpsvcstatus, "i", $statuses{$args{STATUS}}
    );
}

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत