APT — trình quản lý gói cài phần mềm trên Debian, Ubuntu và mọi distro dựa trên chúng — vừa dính một lỗi nghiêm trọng: kẻ tấn công đứng giữa đường truyền có thể tráo gói đã được APT xác minh bằng gói của mình, rồi gói đó chạy script cài đặt với quyền root. CVE-2026-109518, công bố ngày 04/11/2026, CVSS 4.0 7.7 High (Canonical chấm; maintainer gọi là critical).

Lỗi hoạt động thế nào

Bình thường APT tải gói .deb, kiểm tra hash SHA-256 của nó với manifest InRelease đã ký PGP, rồi mới đưa cho dpkg cài. Mật mã không bị phá — lỗi nằm ở lớp filesystem:

  • Khi download bị lỗi và APT thử lại (retry), APT mở lại file đang ghi mà không chắc file đó là của mình — file có thể là một hard link (hai tên cùng trỏ một inode) mà một lần tải khác cũng dùng.
  • Kết hợp HTTP redirect + retry + resume bằng Range, kẻ tấn công trên đường truyền (Wi-Fi độc, router bị chiếm, mirror độc, proxy cache) có thể ghi đè file .deb đã xác minh xong bằng nội dung độc hại.
  • Từ Debian 12 / Ubuntu 22.04, Acquire::Retries mặc định là 3 (trước đó là 0) — chính thay đổi này mở ra điều kiện khai thác. Lỗi do Max Justicz báo cáo, maintainer Julian Andres Klode vá.

Ai bị ảnh hưởng

  • Debian 12 (Bookworm) và Debian 13 (Trixie), Ubuntu 22.04 trở lên (tới 26.10). Mọi máy chủ, desktop và container build dùng APT đều dính — APT chạy với quyền root ở gần như mọi hệ Debian/Ubuntu.
  • Chưa có PoC công khai hay khai thác thật được báo cáo, chưa vào CISA KEV tính đến 05/11 — đây là vá phòng ngừa, nhưng với một lỗi ở đúng trình cài gói thì không nên để lâu.

Đã có bản vá (04/11)

  • Debian 13: apt 3.0.4 (DSA-6607-1); Debian 12: apt 2.6.2 (DLA-4880-1); upstream 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 (USN-8996-1).
  • Kiểm tra phiên bản của bạn: apt --version.

Cách vá an toàn

Vì chính quá trình tải bản vá cũng có thể bị khai thác, hãy tắt retry trong lúc cập nhật:

sudo apt -o Acquire::Retries=0 update && sudo apt -o Acquire::Retries=0 install --only-upgrade apt

Khi Acquire::Retries=0, APT không thử lại download nên lỗi này không khai thác được trong lúc vá.

Một hiểu lầm cần tránh: chuyển sang HTTPS không sửa được lỗi này hoàn toàn — mirror độc hay TLS proxy vẫn có thể tráo nội dung. HTTPS chặn được kẻ nghe lén đường truyền, nhưng chỉ bản vá mới diệt tận gốc.

Nguồn: