FlawOpen

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

● CVE-2026-73570 · CVSS 8.9[5], [10] · Tinggi
Riset Keamanan · FlawOpen

CVE-2026-73570: bagaimana jalur notifikasi SNMP Zimbra memungkinkan injeksi perintah

CVE-2026-73570 adalah kerentanan injeksi perintah tanpa autentikasi pada jalur notifikasi SNMP opsional Zimbra. Email yang dirancang khusus dapat memengaruhi nilai status yang kemudian disisipkan ke perintah shell. Zimbra memperbaiki pemanggilan ini pada versi 10.1.20. Microsoft kemudian melaporkan alat pemindaian yang menyelidiki jalur rentan sebelum pengungkapan publik.[1], [2], [5]

Vektor CVSSCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L[5], [10]
💡 Penjelasan Sederhana (ELI5)

Petugas penyortiran surat menyalin label amplop ke lembar kerja. Proses lama menyerahkan seluruh lembar itu kepada penerjemah perintah, yang dapat mengira karakter pada label sebagai instruksi tambahan. Perbaikannya memberikan daftar argumen terpisah kepada program notifikasi sehingga label tetap menjadi data.[8], [9], [3]

Konsep Kunci & Istilah

swatchdog
Proses pemantauan log yang digunakan jalur Zimbra ini untuk mengenali pesan status layanan dan memicu notifikasi.[1]
SNMP trap
Notifikasi yang dikirim sistem terkelola ke penerima pemantauan SNMP saat suatu peristiwa terjadi.[1]
Interpolasi shell
Menyusun perintah teks yang akan diurai shell. Karakter dalam nilai yang tidak tepercaya dapat mengubah arti perintah.[8], [7]
system bentuk daftar
Bentuk multi-argumen system pada Perl menjalankan program secara langsung dan meneruskan tiap argumen secara terpisah, tanpa meminta shell mengurai string perintah.[9], [3]

Pemetaan kerangka kerja

Analisis Akar Masalah (Root Cause)

Kode terdampak berada di rpmconf/Conf/swatchrc, fungsi dosnmp. Aturan swatch mengambil nama layanan dari baris status dan meneruskannya melalui donotify sebagai SERVICE; dosnmp lalu menyisipkan nilai itu ke perintah backtick yang memuat $snmptrap. Backtick menjalankan shell, sehingga nilai dari log dapat ditafsirkan sebagai sintaks perintah. Prasyarat yang didokumentasikan harus terpenuhi bersama: Zimbra Collaboration Suite sebelum 10.1.20, paket opsional zimbra-snmp terpasang, dan notifikasi SNMP aktif. Microsoft melaporkan bahwa masukan SMTP yang dirancang khusus dapat mencapai jalur notifikasi. Microsoft mengamati alat pemindaian yang menyelidiki titik injeksi rentan pada 28 Juli hingga 7 Agustus 2026, setelah perbaikan 20 Juli dan sebelum pengungkapan publik 13 Agustus. Perbaikan Zimbra mengganti string shell dengan system(...) bentuk daftar dan memberikan executable serta argumen secara terpisah; shell tidak lagi terlibat dalam eksekusi. Analisis ini hanya membahas kode notifikasi SNMP dan tidak berarti setiap instalasi Zimbra atau email SMTP rentan.[1], [2], [3], [5], [7]

Matriks jangkauan dan remediasi CVE-2026-73570

Kondisi deploymentApakah jalur yang didokumentasikan berlaku?Tindakan defensif
Zimbra Collaboration Suite sebelum 10.1.20; paket opsional zimbra-snmp terpasang; notifikasi SNMP diaktifkan.Ketiga kondisi diperlukan untuk jalur notifikasi yang didokumentasikan. Microsoft melaporkan input SMTP yang dirancang khusus dapat memengaruhi nilai status layanan yang kemudian diproses dosnmp.Upgrade ke 10.1.20 atau lebih baru. Tinjau log terkait dan telemetri proses selama periode paparan; perlakukan indikator sebagai petunjuk investigasi, bukan bukti kompromi.
Paket zimbra-snmp tidak terpasang atau notifikasi SNMP dinonaktifkan.Jalur notifikasi dosnmp yang dijelaskan tidak aktif dalam konfigurasi ini. Ini tidak membuktikan server bebas dari kerentanan lain.Biarkan fitur nonaktif atau paket tidak terpasang sampai server diperbarui. Inventarisasi semua node mailbox dan pastikan pengaturannya pada tiap node.
Zimbra Collaboration Suite 10.1.20 atau lebih baru dengan paket yang telah diperbaiki vendor.Konstruksi perintah shell yang didokumentasikan diperbaiki pada 10.1.20. Nomor versi saja tidak memverifikasi setiap node atau modifikasi lokal.Verifikasi versi dan paket yang terpasang di setiap node; lakukan triase insiden normal untuk periode sebelumnya jika ketiga kondisi paparan terpenuhi.

Alur Serangan Langkah demi Langkah

Langkah 1

Prasyarat terpenuhi

Versi sebelum 10.1.20, zimbra-snmp terpasang, dan notifikasi SNMP aktif.[1]

Langkah 2

Email memengaruhi nilai pemantauan

Microsoft melaporkan masukan SMTP dapat memengaruhi nilai status dalam log. String eksploitasi dan instruksi jaringan tidak disertakan.[1]

Langkah 3

swatchdog meneruskan nilai

Aturan mengambil kolom layanan dan mengirimkannya melalui donotify ke dosnmp saat notifikasi aktif.[1]

Langkah 4

Shell membaca data sebagai perintah

Sebelum patch, backtick Perl meneruskan string berisi nilai tangkapan ke shell dalam konteks akun layanan Zimbra.[1]

Langkah 5

10.1.20 menghapus shell

Perbaikan memberikan argumen terpisah kepada snmptrap. Perbarui lalu selidiki sistem yang terpapar; perbaikan tidak meniadakan kemungkinan aktivitas sebelumnya.[1]

Kode Sumber: Rentan vs Aman

Backtick yang rentan mengirim satu string hasil interpolasi ke shell. Patch upstream memakai system multi-argumen dan meneruskan program serta setiap argumen secara terpisah, sehingga metakarakter pada SERVICE tidak menjadi instruksi shell. Potongan ini hanya menunjukkan pemanggilan yang berubah, bukan eksploit yang dapat dijalankan atau salinan lengkap berkas.[3], [4], [8], [9]

Cuplikan sumber: rpmconf/Conf/swatchrc: dosnmp

IMPLEMENTASI RENTAN
# Potongan ringkas dosnmp terdampak; tanpa masukan eksploitasi.
sub dosnmp {
    my %args = (@_);
    `$snmptrap $snmpsvctrap $snmpsvcname s $args{SERVICE} $snmpsvcstatus i $statuses{$args{STATUS}}`;
}
PERBAIKAN AMAN & KUAT
# Perbaikan Zimbra 10.1.20: jalankan program dengan argumen terpisah.
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}}
    );
}

Daftar Periksa Penguatan Sistem Rekayasa

Sumber