Lỗi thay thế gói qua hard link trong Debian và Ubuntu APT dẫn đến thực thi mã với quyền root

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-109518 là gì?

Lỗ hổng CVE-2026-109518 là lỗ hổng thuộc các loại UNIX Hard Link và Time-of-check Time-of-use (TOCTOU) Race Condition, ảnh hưởng tới APT (phiên bản bị ảnh hưởng: < 1.2.36, 1.4.0 – < 1.4.12 và các phiên bản bị ảnh hưởng khác) và APT (phiên bản bị ảnh hưởng: < 1.0.1ubuntu2.24+esm4, 1.2.0 – < 1.2.36+esm1 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 7.7. Hiện chưa đủ dữ liệu để xác định lỗ hổng này đã bị khai thác hay chưa.

Giới thiệu chung

Dữ liệu gốc

Trên Debian, Ubuntu và các bản phân phối Linux phái sinh, kẻ tấn công trên đường truyền có khả năng thao túng lưu lượng HTTP, bao gồm mirror hoặc proxy độc hại, giữa một APT client và archive server trong quá trình cài đặt gói có thể lừa client cài đặt một gói chưa được xác minh do kẻ tấn công kiểm soát và đạt được khả năng thực thi mã từ xa với quyền root. Lỗ hổng bắt nguồn từ việc tái sử dụng hard link và yêu cầu client theo redirect cũng như thử tải lại các tệp gói. Client phải có cấu hình Acquire::Retries khác không; giá trị 3 là mặc định bắt đầu từ Debian 12 (bookworm) và Ubuntu 22.04 LTS (Jammy Jellyfish), do đó các bản phát hành cũ hơn không bị ảnh hưởng trong cấu hình mặc định.

Sản phẩm và phạm vi ảnh hưởng

Bản ghi đánh dấu trạng thái mặc định là không bị ảnh hưởng, nhưng mô tả khai thác yêu cầu Acquire::Retries khác không. Các nhánh apt bị ảnh hưởng được hỗ trợ gồm:

  • Debian APT: từ 0 đến trước 1.2.36; từ 1.4.0 đến trước 1.4.12; từ 1.6.0 đến trước 1.6.19; từ 1.8.0 đến trước 1.8.2.4; từ 1.8.3 đến 1.8.5; từ 2.0.0 đến trước 2.0.12; từ 2.2.0 đến trước 2.2.5; từ 2.4.0 đến trước 2.4.15; từ 2.6.0 đến trước 2.6.2; từ 2.8.0 đến trước 2.8.4; từ 3.0.0 đến trước 3.0.4; từ 3.2.0 đến trước 3.2.1; và từ 3.3.0 đến trước 3.3.6.
  • Ubuntu APT: từ 0 đến trước 1.0.1ubuntu2.24+esm4; từ 1.2.0 đến trước 1.2.36+esm1; từ 1.6.0 đến trước 1.6.19+esm1; từ 2.0.0 đến trước 2.0.12+esm1; từ 2.4.0 đến trước 2.4.15ubuntu0.1; từ 2.8.0 đến trước 2.8.4ubuntu0.1; từ 3.2.0 đến trước 3.2.1ubuntu0.1; và từ 3.3.0 đến trước 3.3.3ubuntu0.1.
  • Debian đã xác nhận bản sửa cho Debian 12 bookworm tại apt 2.6.2 và cho stable trixie tại apt 3.0.4. Vì bản ghi chuẩn hóa vẫn đánh dấu một nhánh 3.3.0 đến trước 3.3.6 là bị ảnh hưởng, không nên dùng 3.0.4 làm mốc sửa chung cho mọi nhánh Debian.
  • Trang trạng thái Ubuntu được kiểm tra liệt kê apt là vulnerable trên các bản phát hành 26.10, 26.04, 24.04, 22.04, 20.04, 18.04, 16.04 và 14.04. Bản ghi không cung cấp ranh giới gói đã sửa riêng cho 26.10.

Chi tiết kỹ thuật

Lỗi nằm trong cách APT xử lý các lần tải gói qua HTTP khi redirect khiến hai lần tải khác nhau được quy về cùng một URI. Việc tái sử dụng hard link và xử lý không an toàn khi tiếp tục tải xuống cho phép kẻ tấn công trên đường truyền thay thế nội dung gói sau khi gói đã được xác minh. Điều kiện khai thác gồm một lần cài đặt gói làm phát sinh tải xuống, client phải theo redirect, phải thử tải lại tệp gói, và cấu hình Acquire::Retries phải có giá trị khác không. Luồng tấn công ở mức cao là: (1) kẻ tấn công kiểm soát hoặc thao túng lưu lượng HTTP giữa APT client và archive server; (2) các lần tải bị dẫn tới cùng URI; (3) cơ chế resume và hard link dùng lại tệp theo cách không an toàn; và (4) gói do kẻ tấn công kiểm soát được cài đặt với quyền root. Bản ghi xác định lớp lỗi là CWE-62 và CWE-367, nhưng không cung cấp tên hàm hoặc chi tiết triển khai nội bộ cụ thể hơn.

Khả năng khai thác

Lỗ hổng có thể bị khai thác qua mạng bởi kẻ tấn công trên đường truyền, bao gồm một mirror hoặc proxy độc hại có khả năng sửa lưu lượng HTTP. Bản ghi không yêu cầu kẻ tấn công phải xác thực và mô tả tương tác người dùng ở mức thụ động, vì nạn nhân chỉ cần thực hiện quy trình cài đặt gói phù hợp. Khai thác còn phụ thuộc vào việc APT theo redirect, thử tải lại tệp gói và có cấu hình Acquire::Retries khác không. Bản ghi được cung cấp không xác nhận việc khai thác thực tế, exploit công khai hoặc việc sử dụng trong chiến dịch ransomware.

Tác động kỹ thuật

Kết quả kỹ thuật của việc khai thác là APT có thể cài một gói do kẻ tấn công kiểm soát và thực thi mã tùy ý với quyền root. Vì mã chạy trên hệ thống bị cài đặt, tác động thực tế có thể bao gồm kiểm soát ở mức máy, đọc dữ liệu, sửa phần mềm hoặc cấu hình, và làm gián đoạn dịch vụ. Khả năng này đe dọa trực tiếp tính bí mật, toàn vẹn và sẵn sàng của hệ thống dễ bị ảnh hưởng. Điều kiện redirect, retry và thao túng lưu lượng giới hạn phạm vi khai thác, nhưng không làm giảm mức độ nghiêm trọng nếu các điều kiện đó cùng tồn tại. Bản ghi không xác định tác động lan sang các hệ thống riêng biệt hoặc bằng chứng cho thấy một cuộc xâm nhập đã xảy ra.

Tác động đến tổ chức

Một cuộc tấn công thành công có thể khiến máy chủ hoặc máy trạm cài mã do kẻ tấn công kiểm soát với quyền root. Hậu quả có thể bao gồm mất tính bí mật của dữ liệu trên hệ thống, thay đổi phần mềm hoặc cấu hình, và gián đoạn dịch vụ do quyền quản trị toàn cục. Rủi ro tập trung vào các hệ thống thực hiện cài đặt gói qua đường truyền HTTP có thể bị can thiệp, không phải mọi lần sử dụng APT đều tự động bị khai thác. Bản ghi không cung cấp bằng chứng về một vụ xâm nhập, nạn nhân hoặc dữ liệu cụ thể đã bị ảnh hưởng.

Cách khắc phục

  1. Cập nhật apt theo đúng nhánh phát hành. Các mốc không bị ảnh hưởng được ghi nhận trong bản ghi gồm 1.2.36, 1.4.12, 1.6.19, 1.8.2.4, 2.0.12, 2.2.5, 2.4.15, 2.6.2, 2.8.4, 3.0.4, 3.2.1 và 3.3.6 cho các nhánh Debian tương ứng.
  2. Đối với Ubuntu, cập nhật tới các mốc gói tương ứng: 1.0.1ubuntu2.24+esm4, 1.2.36+esm1, 1.6.19+esm1, 2.0.12+esm1, 2.4.15ubuntu0.1, 2.8.4ubuntu0.1, 3.2.1ubuntu0.1 và 3.3.3ubuntu0.1, theo đúng nhánh được cài đặt.
  3. Với Debian 12 bookworm, sử dụng apt 2.6.2. Với stable trixie, advisory Debian xác nhận apt 3.0.4 đã sửa lỗi. Không áp dụng mốc trixie cho các nhánh Debian khác nếu chưa đối chiếu gói của nhánh đó.
  4. Nhánh Debian từ 1.8.3 đến 1.8.5 được đánh dấu bị ảnh hưởng nhưng bản ghi không nêu rõ phiên bản sửa ngay sau nhánh này. Hãy sử dụng gói do nhà cung cấp phát hành nằm ngoài phạm vi bị ảnh hưởng và xác minh trạng thái theo advisory của bản phân phối.
  5. Nếu chưa thể cập nhật ngay, rà soát việc đặt Acquire::Retries về giá trị bằng không trong các hệ thống mà việc giảm retry là chấp nhận được về vận hành. Đây chỉ là biện pháp giảm điều kiện khai thác được mô tả, không thay thế cho cập nhật bảo mật và cần được kiểm thử trước khi áp dụng rộng rãi.

Cách phát hiện

  1. Kiểm kê phiên bản gói apt trên Debian, Ubuntu và các bản phân phối phái sinh, sau đó đối chiếu với các nhánh bị ảnh hưởng được liệt kê trong affected_summary.
  2. Kiểm tra cấu hình hiệu lực của Acquire::Retries. Giá trị khác không là một điều kiện cần theo mô tả lỗi, nhưng giá trị bằng không không thay thế cho việc cập nhật gói.
  3. Xác định các hệ thống thực hiện cài đặt gói qua HTTP, redirect, mirror hoặc proxy trung gian, đặc biệt khi các đường dẫn này có thể bị bên ngoài thao túng.
  4. Rà soát log của APT, mirror và proxy để tìm các lần redirect hoặc retry tải gói xảy ra đồng thời với hoạt động cài đặt. Đây là biện pháp rà soát thận trọng, không phải chỉ báo xâm nhập đã được xác nhận.
  5. Ưu tiên điều tra các hệ thống đã cài gói trong khi đi qua mirror hoặc proxy không được kiểm soát hoàn toàn. Không có log phù hợp không chứng minh hệ thống an toàn.
Nguồn (9)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.