APT の HTTP 再試行穴(CVE-2026-109518):更新中は Acquire::Retries=0、できれば HTTPS
Debian/Ubuntu の APT に、HTTP 経路の改ざんで署名済みパッケージを差し替え root でスクリプトを実行させられる欠陥がある。修正版へ上げるときだけでも Acquire::Retries=0 を付け、可能ならアーカイブ URL を HTTPS にする。
いつ使うか
- Debian 12 以降、Ubuntu 22.04 LTS 以降(既定で
Acquire::Retriesが 3)でapt/apt-get/aptitudeや APT を使う GUI を使っているとき - 社内プロキシーやミラー経由で HTTP のままパッケージを取っているとき
何が起きるか
- HTTP リダイレクトで同じ URI になった 2 件のダウンロードを APT が統合する動作と、再試行時のハードリンク扱いの不備が重なる。
- 経路上の攻撃者や悪意あるミラーが、署名検証を済ませたあとにパッケージを差し替え、インストール時のスクリプトを root で実行させられる。
- 成立の条件はおおむね「
.debのインストール」「リダイレクトの追従」「Acquire::Retriesが 0 以外」。「再試行しない」設定ならこの経路では成立しない。snap は対象外。
対応
- 影響版か確認する。
apt list --installed '?source-package(^apt$)' - 更新そのものを取る間は再試行を止める(Ubuntu の案内)。
sudo apt update && sudo apt upgrade -o Acquire::Retries=0APT 本体だけなら:
sudo apt update && sudo apt install -o Acquire::Retries=0 --only-upgrade '?source-package(^apt$)' - 修正版の目安(一次情報で再確認すること):
- Debian: bookworm 2.6.2/trixie 3.0.4/forky・sid 3.3.6 以降
- Ubuntu: 22.04 が 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)
- 経路に懸念がある間は、Ubuntu アーカイブの
http://をhttps://に切り替える(コミュニティミラーの一部は HTTPS 非対応なのでapt updateで確認)。
注意
- TLS は経路改ざんへの緩和であり、長期の本対策は APT の修正版適用。アーカイブ署名はその後も別レイヤーの防御として残る。
- unattended-upgrades が有効ならセキュリティ更新は自動で入るが、初回の修正を取る前に経路を信用できないなら、手動で
Acquire::Retries=0付き更新を先に行う。
出典
- @MalwareBibleJP · 2026-11-07
- Ubuntu: ubuntu.com
- Debian tracker: security-tracker.debian.org