Exim CVE-2026-45185 終極剖析:Linux 郵件伺服器嚴重漏洞,AI 7日寫出 Exploit

Exim 係乜係乜嘢?佢係 Linux / Unix 世界最常用嘅 Mail Transfer Agent(MTA),簡單講就係負責 send 同 receive email 嘅底層軟件。Debian 同 Ubuntu default 都係用佢。全世界上百萬台伺服器行緊 Exim,你公司嗰部好大機會都係。 今次呢個漏洞真係大鑊 — CVE-2026-45185,CVSS 9.8 Critical,...

Exim 係乜係乜嘢?佢係 Linux / Unix 世界最常用嘅 Mail Transfer Agent(MTA),簡單講就係負責 send 同 receive email 嘅底層軟件。Debian 同 Ubuntu default 都係用佢。全世界上百萬台伺服器行緊 Exim,你公司嗰部好大機會都係。

今次呢個漏洞真係大鑊 — CVE-2026-45185,CVSS 9.8 Critical,unauthenticated remote code execution。即係話攻擊者唔需要任何 login credential,只要 send 一個特製嘅 SMTP request 就可以 remote 執行任意 code。

## 技術背景:Use-After-Free(UAF)

UAF 係經典 memory safety bug。簡單比喻:你退咗間房俾酒店(free),但仲 keep 住條鎖匙(dangling pointer),之後用條舊鎖匙去開間已經俾咗第二個人嘅房 — 咁就可以亂搞人哋啲嘢。

今次 Exim 個 bug 嘅具體流程係咁:

1. 當 Exim 用 GnuTLS 處理 BDAT(chunked SMTP)嘅時候
2. TLS shutdown 會 free 咗個 TLS transfer buffer
3. 但之後 Exim 仲繼續用已經 free 咗嘅 callback references
4. 呢啲 stale references 會 write data 入去 freed memory region
5. 結果 = 攻擊者可以控制 memory,最終做到 arbitrary code execution

## 影響範圍

| 條件 | 詳情 |
|——|——|
| 影響版本 | Exim 4.97 – 4.99.2 |
| TLS Library | 用 GnuTLS 編譯嘅先受影響 |
| 需要功能 | STARTTLS + CHUNKING 需要 advertised |
| OpenSSL 版本 | ✅ 唔受影響 |
| 已修復版本 | Exim 4.99.3 |

**重要:** 如果你係用 OpenSSL build 嘅 Exim,今次唔使驚。但 Debian/Ubuntu default 係用 GnuTLS 㗎!所以大部分 Linux distro 嘅 Exim 都中招。

## Step-by-Step:Check 你部機有冇中招

### Step 1:Check Exim 版本

exim -bV | head -1

如果 output 係 `Exim version 4.97` 至 `4.99.2` 之間,繼續下一步。

### Step 2:Check 係咪 GnuTLS build

exim -bV | grep -i gnutls

如果有 output(例如 `Support for: … GnuTLS`),即係你用緊 GnuTLS,中招。

如果見到 `OpenSSL` 而冇 `GnuTLS`,恭喜你,今次冇事。

### Step 3:Check CHUNKING 係咪 advertised

exim -bP chunking_advertise_hosts | grep -v "^#"

如果 return `*` 或者冇 comment out,即係 CHUNKING enabled。

### Step 4:Check STARTTLS

exim -bP tls_advertise_hosts | grep -v "^#"

同樣道理。

### Step 5:如果三個條件都中 — 你係 vulnerable

## 點樣 Fix?

**最直接方法:Upgrade Exim 去 4.99.3**

Ubuntu/Debian:

sudo apt update && sudo apt upgrade exim4
# Check 版本
exim -bV | head -1
# 應該見到 4.99.3 或以上

如果 package manager 仲未有新版本,可以自己 compile:

wget https://ftp.exim.org/exim/exim4/exim-4.99.3.tar.gz
tar xzf exim-4.99.3.tar.gz
cd exim-4.99.3
# 用 OpenSSL 而唔係 GnuTLS
make clean
make
sudo make install

**Workaround(如果 upgrade 唔到):**

可以暫時 disable CHUNKING:

# 喺 exim.conf 加呢行
chunking_advertise_hosts =

然後 restart Exim:

sudo systemctl restart exim4

## 呢個漏洞嘅特別之處

呢個漏洞係由 XBOW 嘅 researcher Federico Kirschbaum 發現嘅。最有趣嘅係,XBOW 做咗個實驗:用佢哋嘅 AI 系統「XBOW Native」同一個有 LLM 輔助嘅人類 researcher 比賽,睇邊個可以快啲寫到 working PoC exploit。

**結果:XBOW Native(AI)用咗 7 日成功寫出 exploit。**

呢個唔單止係一個 vulnerability disclosure,仲係一個 AI 喺 offensive security 領域能力嘅示範。以後 zero-day exploit 開發嘅門檻會越嚟越低。

## 總結

– Exim CVE-2026-45185 係 critical UAF RCE
– GnuTLS build + STARTTLS + CHUNKING 先受影響
– 即刻 check 你嘅 Exim server
– Upgrade 去 4.99.3 或者 disable CHUNKING
– AI 已經可以自動寫 exploit,patching 速度要更快

記住:呢個世界冇絕對安全嘅系統,只有未俾人發現嘅漏洞。定期 update、monitor log、做好 defense in depth,先係生存之道。

Stay safe, stay patched. 🛡️

#技術分享 #Linux #TLS #IT教學