11 月 4 日,Debian(DSA-6607-1)和 Ubuntu(USN-8996-1)同時修復了套件管理器 APT 本身的一個漏洞 CVE-2026-109518,由 Max Justicz 發現。Debian 公告的說法是:APT 在 HTTP 重新導向讓兩個不同的套件下載得到同一個網址時,會把它們合併;斷點續傳時檔案處理不當,中間人可以在套件通過驗證之後再把它換掉,最終以 root 身份執行任意程式碼。Ubuntu 給它的 CVSS v4 評分是 7.7。

誰受影響

  • 攻擊者需要能篡改 APT 和套件庫之間的 HTTP 流量,NVD 的描述裡明確包括惡意鏡像站和代理。Debian、Ubuntu 的官方套件庫預設走 HTTP,平時靠簽名和雜湊驗證防篡改,這個漏洞繞過的正是驗證之後那一步。
  • 利用需要 APT 跟隨重新導向並重試下載,也就是 Acquire::Retries 不為 0。這個值從 Debian 12 和 Ubuntu 22.04 起預設就是 3,所以這兩個版本及以後的預設設定都受影響;更早的版本預設不受影響,但如果指令碼裡自己設定過重試,同樣要修。
  • 同一次 Debian 更新還修了幾處越界存取問題。

修復版本和做法

  • Ubuntu:22.04 升到 apt 2.4.15ubuntu0.1,24.04 升到 2.8.4ubuntu0.1,26.04 升到 3.2.1ubuntu0.1,26.10 升到 3.3.3ubuntu0.1;20.04 及更早的版本透過 Ubuntu Pro 的 ESM 提供。
  • Debian:13(trixie)升到 3.0.4,12(bookworm)升到 2.6.2(DLA-4880-1)。
  • 用 apt-cache policy apt 看已安裝的版本。升級 apt 這一步本身還是用舊 apt 下載的;在 oss-security 郵件列表上轉發這條公告的研究者提到,升級前把 Acquire::Retries 設為 0 可以緩解,所以穩妥的做法是 sudo apt -o Acquire::Retries=0 update,再 sudo apt -o Acquire::Retries=0 install --only-upgrade apt。

順手做的兩件事

一是看看套件庫設定裡有沒有來歷不明的第三方鏡像站或代理,能用 HTTPS 的套件庫儘量用 HTTPS;二是這類「裝軟體就被下毒」的供應鏈風險不只出在 APT,9 月 npm 的 ChainDrop 蠕蟲就是另一種,見這篇報導。系統版本怎麼選、哪個版本還在支援期,見VPS 作業系統怎麼選和Ubuntu 22.04 支援期限;如果擔心之前已經被人動過,按入侵排查檢查。