flawopen.com/Teardowns/cve-2026-73570-zimbra-snmp-command-injection
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]
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]
Pemetaan kerangka kerja
- Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-78
- CISA KEV — ditambahkan 2026-08-21 — CVE-2026-73570
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 deployment | Apakah 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
Prasyarat terpenuhi
Versi sebelum 10.1.20, zimbra-snmp terpasang, dan notifikasi SNMP aktif.[1]
Email memengaruhi nilai pemantauan
Microsoft melaporkan masukan SMTP dapat memengaruhi nilai status dalam log. String eksploitasi dan instruksi jaringan tidak disertakan.[1]
swatchdog meneruskan nilai
Aturan mengambil kolom layanan dan mengirimkannya melalui donotify ke dosnmp saat notifikasi aktif.[1]
Shell membaca data sebagai perintah
Sebelum patch, backtick Perl meneruskan string berisi nilai tangkapan ke shell dalam konteks akun layanan Zimbra.[1]
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
# Potongan ringkas dosnmp terdampak; tanpa masukan eksploitasi.
sub dosnmp {
my %args = (@_);
`$snmptrap $snmpsvctrap $snmpsvcname s $args{SERVICE} $snmpsvcstatus i $statuses{$args{STATUS}}`;
}
# 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
- ✓Perbarui semua instalasi Zimbra Collaboration sebelum 10.1.20 ke versi 10.1.20 atau lebih baru dan verifikasi versi paket di setiap node mailbox.[2], [1]
- ✓Periksa apakah
zimbra-snmpterpasang dan notifikasi SNMP aktif. Jika patch tertunda, hapus paket opsional atau nonaktifkan notifikasi sesuai kebutuhan, lalu batasi akses SMTP dan SNMP ke sistem tepercaya.[1] - ✓Anggap sistem tanpa patch yang dapat dijangkau dari internet dan memenuhi kedua prasyarat sebagai terpapar. Tinjau log dan telemetri endpoint untuk nilai status tak terduga serta proses anak Perl atau swatchdog yang tidak biasa.[1], [6]
- ✓Jika ada paparan sebelum patch, simpan log, tentukan cakupan node mailbox terdampak, periksa persistensi dan aktivitas akun, serta rotasi rahasia jika bukti atau tingkat paparan mengharuskannya.[1], [6]
- ✓Dalam tinjauan kode, larang eksekusi string shell yang memuat nilai dari log, email, atau masukan eksternal lain. Utamakan API dengan vektor argumen; validasi ketat antarmuka yang masih menggunakan shell.[8], [9], [7], [3]
- ✓Tambahkan tes regresi yang membuktikan nilai layanan diteruskan sebagai satu argumen literal dan shell tidak dijalankan; gunakan string metakarakter yang aman di harness pengujian terisolasi.[3], [9]
Sumber
- Microsoft Threat Intelligence: eksploitasi dan perbaikan CVE-2026-73570
- Catatan rilis Zimbra 10.1.20 — perbaikan SNMP
- Patch upstream: commit 92b6ebe Zimbra/zm-build
- PR #333 Zimbra/zm-build
- NVD/GitHub Advisory Database: CVE-2026-73570, CWE-78, CVSS 8.9
- Entri katalog CISA untuk kerentanan yang diketahui dieksploitasi
- MITRE CWE-78: OS command injection
- Perl perlop: command execution with backticks
- Perl system function documentation
- NVD: CVE-2026-73570