📑 Daftar Isi
- Gejalanya apa aja sih? Dan kenapa gak bisa diandelin
- Cek versi dan build Exim kamu
- Solusi: upgrade step-by-step
- Upgrade di Debian / Ubuntu
- Upgrade di RHEL / AlmaLinux / Rocky
- Upgrade di cPanel & WHM
- Upgrade di Plesk
- Compile dari source (jalan terakhir)
- Verifikasi setelah upgrade
- CVE-2026 Exim lainnya yang jangan dilewatin
- Pro tips & warnings dari pengalaman
- FAQ
- Q: Server aku Exim-nya dikelola cPanel. Apa yang harus aku lakukan?
- Q: Build aku pakai OpenSSL, berarti aman dari semua CVE 2026?
- Q: Aku gak bisa upgrade sekarang. Ada mitigation sementara?
- Q: Gimana cara tahu build Exim aku pakai GnuTLS atau OpenSSL?
- Q: Apakah bug ini bisa dieksploitasi dari jarak jauh tanpa akun?
Tolong ya, jangan nunda update Exim. Serius. Aku udah dua kali lihat server yang kena exploit karena males upgrade, dan dua-duanya berakhir dengan malam yang panjang, client yang marah-marah, plus briefing pagi yang bikin mikir keras kenapa dulu gak upgrade aja dari awal. Sekarang masalahnya lebih gede dari sebelumnya.
Yang aku maksud CVE-2026-45185. Remote code execution. Skor CVSS 9.8 dari 10. Bukan clickbait, bukan drama. Attacker bisa eksekusi kode tanpa login, tanpa autentikasi, cukup lewat koneksi TLS yang dibikin khusus ke port 25. Dan di lapangan, masih banyak banget server yang jalan di versi rentan. Lha, kok iso? Ya karena orang nunda update. Wis, sini tak jelasin pelan-pelan.
Nah, sebelum masuk ke solusi, aku mau jelasin sebenernya bug-nya di mana. CVE-2026-45185 itu use-after-free di backend GnuTLS, tepatnya di proses penerimaan body message pakai ekstensi CHUNKING alias BDAT. Waktu client ngirim TLS close_notify di tengah-tengah transfer body, terus nyusul ngirim satu byte dalam keadaan cleartext di koneksi TCP yang sama, Exim nyoba nulis ke memory buffer yang udah ke-free pas TLS session-nya di-teardown. Hasilnya heap corruption. Dan dari heap corruption ke remote code execution, jalan-nya udah dipetain habis-habisan sama peneliti keamanan. Gak nyaman, kan.
Semua versi Exim dari 4.97 sampai 4.99.2 kena, tapi cuma build yang pakai USE_GNUTLS=yes. Kalau build kamu pakai OpenSSL, kamu aman dari bug yang satu ini. Tapi jangan buru-buru lega, soalnya ada CVE-2026 lain yang gak pandang bulu soal library TLS. Di bagian bawah nanti aku kasih tabel lengkapnya.
Terus kamu bilang, “Mas, serverku kan cuma buat relay internal, gak nutup SMTP dari luar. Aman dong?” Duh, aku harap gitu. Tapi pengalaman di lapangan, banyak yang ngaku internal eh ternyata port 25-nya kebuka ke internet. Entah firewall misconfig, entah default yang permisif dari datacenter, entah ada load balancer yang forward semuanya. Coba cek sendiri dari luar pakai nmap, jangan cuma percaya konfigurasi firewall di atas kertas. Yang paling bener tetep upgrade sekarang, gak usah nunda-nunda.
Gejalanya apa aja sih? Dan kenapa gak bisa diandelin
Ini bagian yang bikin gemes. Bug ini gak selalu bikin Exim crash total. Kadang yang mati cuma child process yang lagi nangani koneksi itu. Kadang malah gak keliatan sama sekali, sampai attacker sukses eksekusi payload-nya. Jadi kalau kamu nunggu ada gejala dulu baru upgrade, kamu lagi main judi sama server production kamu sendiri.
Kalau pun ada yang keliatan, polanya biasanya kayak gini. Coba cek dulu /var/log/exim/mainlog:
2026-07-20 14:12:30 1mXaBc-0004-9pz <= H=mail.attacker-net.example [198.51.100.45] P=ESMTPS X=TLSv1.3 TLS_AES_256_GCM_SHA384 CV=no S=1352
2026-07-20 14:12:30 1mXaBc-0004-9pz BDAT 2048
2026-07-20 14:12:30 1mXaBc-0004-9pz BDAT 0
2026-07-20 14:12:31 paniclog: 1mXaBc-0004-9pz: child process crashed with signal 11 (SIGSEGV)
2026-07-20 14:12:31 1mXaBc-0004-9pz ** H=mail.attacker-net.example [198.51.100.45] terminated
Nih, tak bimbing baca baris per baris:
- Baris pertama: ada koneksi masuk dari mail.attacker-net.example pakai ESMTPS, artinya lewat TLS. Baris ini sendiri masih wajar, email masuk pakai TLS itu normal banget.
- Baris kedua dan ketiga: client pakai perintah BDAT dua kali. Ini ekstensi CHUNKING, dan ini persis code path yang lagi diserang.
- Baris keempat: ini yang bikin merinding. Ada entri paniclog, child process crash dengan signal 11 alias SIGSEGV. Segmentation fault itu tanda klasik memory corruption.
- Baris kelima: koneksinya di-terminate. Gak ada pesan error SMTP yang jelas, proses-nya mati mendadak.
Kalau di paniclog kamu nemu pola crash SIGSEGV yang sering, apalagi pas jam-jam sepi, itu alarm kebakaran. Tapi inget ya: gak ada pola ini juga belum tentu aman, karena exploit bisa sukses tanpa crash yang keliatan. Jadi deteksi yang paling bisa diandelin cuma satu: cek versi.
Cek versi dan build Exim kamu
Perintah pertama yang harus kamu jalanin:
exim -bV
Output yang bakal keluar kurang lebih gini:
Exim version 4.99.2 #2 built 11-May-2026 13:33:19
Copyright (c) The Exim Maintainers 2026
(c) The University of Cambridge
Berkeley DB: unknown version
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS Content_Scanning
Yang perlu kamu perhatiin ada dua: nomor versi di baris pertama, sama kata GnuTLS di baris Support for. Kalau versi-nya 4.99.2 atau di bawahnya dan ada GnuTLS, kamu wajib upgrade. Kalau 4.99.5 atau lebih tinggi, udah aman, skip ke bagian verifikasi.
Buat kamu yang di Debian atau Ubuntu, bisa juga cek lewat package manager:
dpkg -l | grep exim
Buat yang di RHEL, AlmaLinux, atau Rocky:
rpm -qa | grep exim

Solusi: upgrade step-by-step
Oke, karena versi-nya memang rentan, kita upgrade. Tapi sebelum itu ada satu hal yang gak boleh kamu lewatkan.
Sebelum upgrade dan restart Exim, pastikan kamu udah: 1) backup folder konfigurasi, 2) catat versi lama buat rollback, 3) siapin jadwal di luar jam sibuk. Upgrade plus restart service email itu bakal mutus koneksi SMTP sesaat. Jangan pernah mulai tanpa backup.
Backup konfigurasi-nya gampang, cukup copy folder-nya:
cp -a /etc/exim4 /root/backup-exim4-$(date +%F)
Kalau kamu di distro yang folder konfigurasinya /etc/exim, kayak RHEL atau Gentoo atau build manual:
cp -a /etc/exim /root/backup-exim-$(date +%F)
Verifikasi backup-nya udah kelar:
ls -la /root/ | grep backup-exim
Kalau folder-nya muncul, baru lanjut ke bawah.
Upgrade di Debian / Ubuntu
Untuk Debian 12 dan Ubuntu 22.04/24.04, pakai apt:
apt update
apt upgrade exim4 exim4-base exim4-daemon-light exim4-daemon-heavy
Perhatiin output-nya baik-baik. Kalau repo distro kamu belum punya versi 4.99.3 atau di atasnya, kamu perlu ambil dari backports:
apt install -t bookworm-backports exim4-daemon-heavy
Buat Ubuntu, cek dulu versi yang tersedia pakai apt policy exim4-daemon-heavy. Kadang fix-nya nunggu rilis point release. Kalau kelamaan, turun aja ke opsi compile dari source di bawah.
Upgrade di RHEL / AlmaLinux / Rocky
Exim di keluarga RHEL biasanya datang dari EPEL. Update-nya:
dnf --enablerepo=epel update exim
Upgrade di cPanel & WHM
cPanel nyediain exim sendiri dengan nama cpanel-exim. Update paling gampang lewat upcp:
/scripts/upcp
Build cPanel yang udah kebenerin CVE-2026: 136.0.7, 134.0.23, 118.0.64, dan 110.0.112. Kalau versi WHM kamu di bawah itu, naikin dulu.
Upgrade di Plesk
Plesk juga update lewat autoinstaller-nya:
plesk installer --select-product-id plesk --select-release-current --upgrade-installed-components
Atau lewat UI: Tools & Settings, terus Updates. Pastikan komponen mail server-nya ikut ke-update.
Compile dari source (jalan terakhir)
Kalau repo distro kamu gak kebagian patch dan kamu gak mau nunggu, compile manual. Unduh tarball-nya:
cd /usr/local/src
wget https://downloads.exim.org/exim4/exim-4.99.5.tar.gz
tar xzf exim-4.99.5.tar.gz
cd exim-4.99.5
Siapin Local/Makefile dari EDITME:
cp src/EDITME Local/Makefile
Terus edit Local/Makefile: set EXIM_USER=exim, EXIM_GROUP=exim, dan aktifkan USE_GNUTLS kalau memang kamu pakai GnuTLS. Cocokin sama konfigurasi build lama kamu. Terus jalanin:
make
make install
Setelah itu verifikasi versi-nya udah 4.99.5.
Verifikasi setelah upgrade
exim -bV
Harusnya keluar 4.99.5. Terus cek queue-nya masih aman:
exim -bpc
Restart servicenya:
systemctl restart exim4 # Debian/Ubuntu
systemctl restart exim # RHEL atau source build
Cek status:
systemctl status exim4
Terakhir, tes kirim email beneran buat mastiin alur mail masih jalan:
printf 'Subject: post-upgrade test\n\nsemoga lancar\n' | exim -v recipient@example.com
Kalau di output muncul Completed, berarti sehat. Nggih, matur nuwun upgrade yang bener.
CVE-2026 Exim lainnya yang jangan dilewatin
Satu hal yang sering bikin orang kecolongan: mereka fix yang satu, lupa yang lain. Tahun 2026 ini Exim dapet beberapa CVE sekaligus, dan fix yang bener itu lari ke versi 4.99.5 biar semuanya beres sekaligus.
| CVE | Tipe | Severity | Versi Terdampak | Fixed di |
|---|---|---|---|---|
| CVE-2026-45185 | Remote code execution (use-after-free GnuTLS / BDAT) | 9.8 Critical | 4.97 – 4.99.2 | 4.99.3 |
| CVE-2026-48840 | Information disclosure (PROXY protocol) | Medium | 4.88 – 4.99.3 | 4.99.4 |
| CVE-2026-40684 / 40685 / 40686 / 40687 | RCE dan info leak (JSON, UTF-8, SPA authenticator) | High – Critical | sebelum 4.99.2 | 4.99.2 |
| CVE-2026-66140 | Local privilege escalation (queue-name) | High | 4.88 – 4.99.4 | 4.99.5 |
Lihat sendiri kan kenapa target kita 4.99.5. Naik ke 4.99.3 aja itu ngebenerin RCE utamanya, tapi kamu masih bolong di CVE-2026-66140 yang bisa jadi jalan privilege escalation lokal. Mumpung upgrade, sekali jalan ke paling baru.
Pro tips & warnings dari pengalaman
- Jangan cuma update satu server kalau kamu punya relay chain. Update semua hop-nya, kalau gak, attacker bisa masuk lewat server yang belum di-patch.
- Ada yang nanya, kalau aku batasin aja port 25 ke allowlist, aman kan? Itu cuma ngurangin attack surface, bukan fix. Attacker dari dalam jaringan tetap bisa nyampein payload. Tetep upgrade.
- Pasang pemantauan di paniclog. Kalau /var/log/exim/paniclog mulai isi SIGSEGV, itu waktunya kamu panik, bukan client kamu.
- Kalau kamu handle banyak server, simpen daftar versi Exim tiap server. Proses audit keamanan jadi jauh lebih cepet.
- Setelah upgrade, update juga informasi di monitoring kamu. Kadang alert lama nyebut versi vulnerable padahal udah dipatch.
Buat kamu yang pengen makin dalam soal hardening, cek juga panduan hardening Exim server sama monitoring queue dan mainlog Exim. Buat yang masih baru di dunia mail server, artikel konfigurasi TLS STARTTLS di Exim bisa jadi starter yang bagus.
FAQ
Q: Server aku Exim-nya dikelola cPanel. Apa yang harus aku lakukan?
Jangan compile manual. cPanel punya versi Exim sendiri (cpanel-exim). Update WHM kamu ke minimal 136.0.7, atau 134.0.23 / 118.0.64 / 110.0.112 tergantung major version, pakai /scripts/upcp. Setelah itu cek exim -bV, pastikan versinya udah di atas 4.99.2.
Q: Build aku pakai OpenSSL, berarti aman dari semua CVE 2026?
Enggak. OpenSSL cuma membebaskan kamu dari CVE-2026-45185 yang spesifik GnuTLS. CVE-2026-48840, CVE-2026-40684 sampai 40687, dan CVE-2026-66140 tetep kena tanpa pandang library TLS. Jadi tetep upgrade ke 4.99.5.
Q: Aku gak bisa upgrade sekarang. Ada mitigation sementara?
Untuk CVE-2026-45185, advisory resmi bilang tidak ada mitigation lain selain upgrade. Sementara, kamu bisa persempit akses ke port 25 pakai firewall (allowlist IP pengirim yang dikenal) biar attack surface-nya kecil. Tapi ini cuma penunda, bukan penyembuh. Prioritaskan upgrade secepatnya.
Q: Gimana cara tahu build Exim aku pakai GnuTLS atau OpenSSL?
Jalanin exim -bV dan perhatiin baris Support for. Kalau muncul kata GnuTLS, berarti build kamu pakai GnuTLS. Kalau muncul OpenSSL, berarti pakai OpenSSL. Kadang dua-duanya muncul karena build-nya support keduanya, kalau gitu anggap aja kena karena backend GnuTLS-nya tetap tersedia.
Q: Apakah bug ini bisa dieksploitasi dari jarak jauh tanpa akun?
Untuk CVE-2026-45185, iya. Attacker cuma butuh koneksi TCP ke port 25 yang support TLS, lalu mainin urutan close_notify ditambah byte cleartext pas proses BDAT. Gak butuh autentikasi sama sekali. Itu kenapa skornya 9.8.
Tolong ya, jangan tunda upgrade ini. Cek versi Exim kamu sekarang juga, sebelum ada pihak lain yang ngecek buat kamu dengan cara yang gak enak. Semoga server kamu aman. Take it seriously.