
FortiMail Zero-Day: Matikan IBE, Cari Jejak
FortiMail Zero-Day: Matikan IBE, Cari Jejak
Fortinet keluarkan advisory FG-IR-26-175 pada 1 Oktober 2026 dengan timeline yang sangat pendek — satu baris, notis awal — dan tiada patch disertakan untuk kebanyakan product line yang terjejas. CVE-2026-104286 dengan skor 9.8, tidak perlu authentication, dan sedang dieksploitasi, kata advisory itu sendiri dan BleepingComputer. Untuk tiga daripada empat branch FortiMail yang terjejas, satu-satunya pilihan yang ada ialah workaround tiga baris CLI.
Itu separuh yang mudah. Bahagian yang susah ialah apa yang senarai indikator vendor sendiri boleh beritahu tentang kotak yang sudah kena, dan kenapa workaround itu tidak mengubah apa-apa apabila ia dipakai pada appliance yang sudah dikompromi.
Dua kelemahan, dan kenapa ia digabungkan
Deskripsi Fortinet patut dibaca betul-betul, sebab dua kelas kelemahan ini hanya bermakna apabila digabungkan:
"An Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') [CWE-22] and Improper Neutralization of NULL Byte or NULL Character [CWE-158] vulnerability may allow an unauthenticated attacker to write arbitrary files on the underlying system via crafted HTTP or HTTPS requests."
Path traversal berdiri sendiri biasanya dibaca sebagai read-and-disclose. Arbitrary file write bukan — ia menjadi celah code execution sebaik sahaja proses itu boleh memilih apa yang ditulis dan ke mana. Medan impak dalam advisory itu menyatakannya dengan tepat: "Execute unauthorized code or commands."
Separuh daripada NULL byte itulah yang biasanya membuat traversal itu mendarat. Laluan yang
lulus semakan validasi sebagai /data/attachments/report.pdf boleh dipotong
kepada /data/attachments/report.pdf\0../../etc/cron.d/x pada lapisan C, jadi
string yang disahkan bukan string yang kernel buka. Fortinet belum menerbitkan
root-cause analysis, jadi anggap ini sebagai bacaan piawai terhadap gabungan
CWE-22 dan CWE-158, bukan mekanisme yang vendor sahkan khusus untuk FortiMail.
Penemu disebut dalam bahagian acknowledgement advisory: Gwendal Guégniaud daripada Product Security team Fortinet, ditemui secara dalaman — sebab itu timeline disclosure hanya ada satu entri.
Jadual versi adalah perangkap
| Branch | Terjejas | Fix |
|---|---|---|
| FortiMail 8.0 | 8.0.0 – 8.0.1 | bakal keluar 8.0.2 |
| FortiMail 7.6 | 7.6.0 – 7.6.6 | bakal keluar 7.6.7 |
| FortiMail 7.4 | 7.4.0 – 7.4.8 | bakal keluar 7.4.9 |
| FortiMail 7.2 | 7.2.0 – 7.2.9 | naik ke branch 7.4 atau lebih tinggi |
Lihat baris terakhir. Itulah satu-satunya baris dengan target yang boleh install hari ini, dan ia bukan patch — ia branch move. Semua yang ada pada 7.4, 7.6 dan 8.0 sedang menunggu build yang belum wujud. Itu perangkap arithmetic versi yang sama seperti yang menipu orang dalam MikroTik pre-auth RCE: nombor yang kelihatan seperti fix dalam satu advisory tidak bermakna apa-apa kalau ia datang daripada fix table flaw yang lain.
Workaround itu, dan apa yang tidak ia buat
Mitigation pertama yang dicadangkan Fortinet ialah mematikan identity-based encryption:
config system encryption ibe
set status disable
end
IBE ialah ciri encrypted message, dan bukti log dalam advisory itu menunjuk ke
code path itu — salah satu signature yang diterbitkan ialah IBE media
decryption failure, Invalid Base64 Encoding at pos 0. Character=0x2a. Pilihan
kedua ialah mengeluarkan management interface daripada internet sepenuhnya dan
mengekangnya kepada private network yang dipercayai.
Kedua-duanya ialah containment, bukan remediation. Mematikan IBE menghalang request seterusnya daripada berjaya. Ia tidak membuang fail yang sudah ada dalam appliance, dan ia tidak menghalang persistence yang sudah pun berjalan supaya terus aktif selepas reboot seterusnya.
Baca senarai indikator sebagai gambaran tentang satu implant
Fortinet menerbitkan tujuh indikator fail bersama hash SHA-256. Susunan senarai itulah berita sebenar:
/data/lib/liblog.so ADDED
/bin/smit MODIFIED
/data/bin/webconsole ADDED
/data/bin/mailservice ADDED
/data/etc/httpd.conf MODIFIED
/data/etc/ld.so.preload ADDED
/data/migadmin.tar.gz MODIFIED
/data/etc/ld.so.preload yang ditambah ialah penemuan yang paling penting.
Fail itu ialah global preload list dynamic linker: satu entry di situ dipetakan
ke dalam setiap process yang loader mulakan. Digandingkan dengan liblog.so
yang dibekalkan penyerang di sebelahnya, itu library-preload hijack — kod yang
melekat pada process kotak itu, bukan kod yang tinggal dalam satu process
sahaja. Sebab itulah ia bertahan walaupun anda memadam satu "malicious binary".
Dua fail yang ditambah di bawah /data/bin/ dinamakan supaya menyamar.
webconsole dan mailservice ialah nama komponen FortiMail yang munasabah;
shared object bernama liblog.so pula ialah nama library yang paling munasabah
dalam sistem itu. Pengubahsuaian /data/migadmin.tar.gz bersama satu cron entry
daripada log — (root) CMD (/bin/sh -c 'O=/migadmin ... — ialah persistence
peringkat root yang akan menetapkan semula dirinya selepas reboot yang anda
memang rancang untuk dibuat sebagai sebahagian patching.
Baca sekali gus: satu implant persistent dan preloaded dengan persistence peringkat root, bukan webshell yang terkilan. Kalau laluan itu wujud, kotak itu sudah dikompromi — "pakai workaround" bukan penghujung insiden.
Akaun archive memberitahu apa yang mereka mahu seterusnya
Baris log paling banyak mendedahkan ialah satu perubahan konfigurasi, bukan serangan:
msg="Added 'archive234' to 'archive account' : rotation-size[50]
rotation-time[1] rotation-hour[14] destination[remote]
remote-ip[79.141.169.187] remote-username[archive234]
remote-password[***] remote-directory[/uploads] (user: admin, from: cli)"
Penyerang tidak mengekstrak data dengan tooling sendiri. Mereka guna ciri
archive dan retention terbina dalam mail gateway itu, dikonfigurasi dari CLI,
untuk menghantar archived mail ke server yang mereka kawal. 79.141.169.187 bukan sekadar
destination dalam baris konfigurasi itu — ia juga alamat pertama daripada dua
alamat IP dalam senarai indikator Fortinet sendiri, berserta 45.129.0.192.
Attribution (user: admin, from: cli) patut disebut dengan jujur. Ini bererti
tindakan itu dibuat oleh akaun administrator dari CLI. Fortinet tidak beritahu
sama ada itu bermakna credential curi atau escalation post-exploitation daripada
file write itu. Samakah, remote unauthenticated file write yang bertukar menjadi
tindakan admin authenticated ialah bahagian dalam insiden ini yang paling layak
diberi perhatian.
Skrip triage read-only
Indikator ini cukup ringkas untuk disemak terus. Ini sengaja read-only — ia tidak mengubah apa-apa dan tidak restart apa-apa, jadi anda boleh run sebelum tentukan langkah seterusnya:
#!/usr/bin/env bash
# CVE-2026-104286 - read-only FortiMail triage.
# Run on the appliance over SSH. Makes no changes and restarts nothing.
# IoCs transcribed from Fortinet PSIRT FG-IR-26-175 (published 1 Oct 2026).
# Adjust LOGFILE to wherever your FortiMail writes its event log.
LOGFILE="${LOGFILE:-/var/log/maillog}"
declare -A IOC_SHA=(
["/data/lib/liblog.so"]="8015f34dc84922b03688399d7f9fe7a00361789f7e420c7e2a2cdb23e75cef84"
["/bin/smit"]="77324ac428bde86d351fc5fc06f6d64a6bfe737dfb2743df1d4c5ac2418a5b6a"
["/data/bin/webconsole"]="7a6cea9f5c9e2e9994d4e3c4da73f86cf5acd05ea5d312c066c9d1dafd69ee38"
["/data/bin/mailservice"]="4000276a150a165d3c2537d1e19fb393c4de8333076a16655e28059cae82157b"
["/data/etc/httpd.conf"]="703e97c64e61e41dc3aaba580d82bb2aa7b6a11b54ee6fb467ed5d5a3bffdef5"
["/data/etc/ld.so.preload"]="8953ec7960b09f544a880b072ad4e6cfda7a8303f486251d3478dcfdfbac23b6"
["/data/migadmin.tar.gz"]="d6fe51c22b91776f4c961ea58bcac5917f15d560a619d7ce726d3d51795609d3"
)
echo "== 1. Indicator files =="
for f in "${!IOC_SHA[@]}"; do
if [ ! -e "$f" ]; then
printf 'absent %s\n' "$f"
continue
fi
got=$(sha256sum "$f" | cut -d' ' -f1)
if [ "$got" = "${IOC_SHA[$f]}" ]; then
printf 'MATCH %s\n' "$f"
else
printf 'DIFFERS %s (present, hash is not the published IoC)\n' "$f"
fi
done
echo
echo "== 2. Attribution IPs in the event log =="
for ip in 79.141.169.187 45.129.0.192; do
n=$(grep -cF "$ip" "$LOGFILE" 2>/dev/null) || true
printf '%-16s %s hit(s)\n' "$ip" "${n:-0}"
done
echo
echo "== 3. Fortinet's published log signatures =="
grep -E 'archive234|/migadmin|Invalid Base64 Encoding' "$LOGFILE" 2>/dev/null | tail -20
Jika bahagian 2 menunjukkan hit, konfigurasi staging penyerang itu ada dalam
config anda sendiri. Kalau /data/etc/ld.so.preload wujud, anggap appliance itu sudah
dikompromi, bukan sekadar menunggu.
Apa yang perlu dibuat, dan dalam tertib apa
Cari jejak sebelum patch. CISA tambah CVE-2026-104286 ke Known Exploited Vulnerabilities pada 1 Oktober dengan tarikh akhir 4 Oktober — tiga hari — dan entri itu membawa flag "Forensics Triage: Yes" berserta panduan BOD 26-04. Gabungan itu ialah ketegangan patch-versus-evidence yang sama seperti dalam zero-day NetScaler, sekarang duduk dalam satu baris catalog dan bukan dalam advisory. Tangkap log dan fail indikator sebelum kitaran upgrade memusnahkan mereka.
Baca required action, sebab ia tidak biasa. Entri KEV menyuruh agency membuat vendor mitigations dan ikut Forensics Triage Requirements — kemudian, untuk kes di mana mitigations tidak tersedia, menyuruh mereka supaya "discontinue use of the product if mitigations are unavailable". Untuk produk yang tiada patch pada tiga daripada empat branch, itu bukan satu hipotesis.
Asingkan management interface sekarang, kemudian pakai workaround IBE jika anda tidak boleh menunggu 7.4.9, 7.6.7 atau 8.0.2. Kalau anda pada 7.2, pindah ke branch 7.4 ialah fix sebenar hari ini.
Anggap mail yang lalu melalui kotak itu dalam skop. FortiMail memproxy setiap message yang organisasi anda hantar dan terima. Library yang dipreload pada appliance itu adalah perkara yang berbeza daripada arbitrary file write pada laptop developer, dan ia layak penilaian yang lebih luas.
Jangan tunggu nama actor. Fortinet belum mendedahkan bila flaw ini mula dieksploitasi, berapa banyak system yang dikompromi, atau siapa di sebalik serangan. Fortinet kata ia sedang berkomunikasi dengan agency kerajaan termasuk CISA, dan entri KEV merekod ransomware use sebagai "Unknown". Pre-auth RCE dalaman yang aktif dieksploitasi jarang resolve kepada cerita attribution yang kemas — anggap ia opportunistik sehingga dibuktikan sebaliknya.
Sumber
// penulis
Editor & Operator
Mohd Firdaus Abu Bakar (MrDodgerX) is an enterprise geospatial systems engineer in Malaysia and the editor behind hejes.my. He runs the briefing pipeline, curates and edits every draft, verifies each factual claim against primary sources, and presses the publish button — nothing ships without his review. He writes about AI, security and Malaysia's tech scene from a builder's perspective. Professional profile and code: the links below.
// sumber //
disahkan fakta · 02 OKT 2026 · hejes-content-fact-check
- FG-IR-26-175: Improper limitation of a pathname to a restricted directoryFortinet PSIRT · diakses 02 OKT 2026
- Known Exploited Vulnerabilities Catalog (CVE-2026-104286 entry)CISA · diakses 02 OKT 2026
- Fortinet warns of critical FortiMail flaw exploited in zero-day attacksBleepingComputer · diakses 02 OKT 2026
berkaitan //

LMCache CVE-2026-105192: RCE 9.8 Belum Ditampal
LMCache unpickle data terus daripada socket tanpa authentication. Satu mesej sudah memadai untuk RCE, pendedahan anda seluas satu flag, dan patch belum wujud.

Bug GoBalance Dedah Kunci Master Onion Tor
Bug dalam load balancer GoBalance membolehkan sesiapa memulihkan kunci master Tor sebuah laman dark web daripada satu descriptor awam.
Pwn2Own: Pixel 10 Dipatch Ditembus Tiga Kali
Di Pwn2Own Ireland, tiga pasukan menembusi Google Pixel 10 yang sudah dipatch sepenuhnya melalui rangkaian pada hari yang sama, berkongsi hadiah $562,500.
// sertai suapan
satu ilmu seminggu. tiada spam.
ringkasan mingguan. berhenti bila-bila masa.