Phát hiện Lỗ hổng CVE-2025-38001 nghiêm trọng Linux Kernel

Phát hiện Lỗ hổng CVE-2025-38001 nghiêm trọng Linux Kernel

Các nhà nghiên cứu bảo mật đã phát hiện và phát triển mã khai thác (weaponize) một lỗ hổng CVE nghiêm trọng loại Use-After-Free (CVE-2025-38001) trong cơ chế điều phối hàng đợi (queuing discipline) HFSC của bộ lập lịch gói tin mạng Linux. Lỗ hổng này đã được khai thác thành công trên các phiên bản Google kernelCTF (LTS, COS và mitigation) cũng như hệ thống Debian 12 đã cập nhật đầy đủ.

Bằng cách kết hợp khéo léo chế độ lập lịch thời gian thực của HFSC, tính năng sao chép gói tin của NETEM và hàng đợi gốc Token Bucket Filter (TBF) được điều tiết, cuộc tấn công đã biến một vòng lặp vô hại thành một phương thức khai thác đáng tin cậy. Nỗ lực này đã mang lại khoản tiền thưởng xấp xỉ 82.000 USD.

Chi tiết Lỗ hổng CVE-2025-38001

HFSC duy trì một “eligible tree” (cây RBTree) chứa các lớp gói tin đang chờ được xử lý. Khi tính năng sao chép của NETEM hoạt động dưới đường cong dịch vụ thời gian thực của HFSC, mỗi gói tin sẽ được đưa vào hàng đợi hai lần do một lời gọi đệ quy.

Việc chèn kép này tạo ra một chu trình trong RBTree, khiến hoạt động dequeue (lấy ra khỏi hàng đợi) bị lặp vô hạn. Khi đưa vào một hàng đợi gốc TBF với tốc độ thấp, nó sẽ ngăn việc loại bỏ gói tin đủ lâu để giải phóng lớp dư thừa, để lại một nút RBTree “treo” (dangling).

Việc enqueue (thêm vào hàng đợi) một lớp khác sau đó sẽ kích hoạt tình trạng Use-After-Free, dẫn đến lỗi hỏng bộ nhớ heap của kernel.

Phương thức Khai thác và leo quyền

Thay vì dựa vào chuỗi ROP truyền thống, nhóm nghiên cứu đã phát triển một phương thức sao chép con trỏ dựa trên vector trang (page-vector-based pointer copy primitive).

Họ đã thay thế đối tượng lớp HFSC đã được giải phóng bằng một vector trang kernel do người dùng kiểm soát. Điều này buộc các thao tác con trỏ RBTree phải sao chép con trỏ trang kernel từ vector này sang vector khác.

Sự không khớp trong số lượng tham chiếu (reference counts) đã tạo ra một lỗ hổng Use-After-Free ở cấp độ trang. Từ đó, họ đã tận dụng lỗ hổng này để ghi đè thông tin xác thực tiến trình của họ, leo thang đặc quyền thành chiếm quyền điều khiển cấp độ root.

Để tìm hiểu thêm về các lỗ hổng kernel, có thể tham khảo thêm thông tin về các lỗi tương tự trong nhân hệ điều hành khác như lỗ hổng kernel XNU của Apple.

Hệ thống bị ảnh hưởng và tốc độ khai thác

Mã khai thác đạt được độ tin cậy gần như hoàn hảo chống lại các hệ thống sau:

  • Các phiên bản Google kernelCTF: LTS, COS và mitigation.
  • Debian 12 được cập nhật đầy đủ.

Sử dụng các script gửi (submission scripts) đã được tối ưu hóa và giải quyết PoW (Proof-of-Work) bằng GPU, nhóm nghiên cứu đã đánh cắp cờ LTS chỉ trong 3,6 giây – đây là thời gian nhanh nhất trong lịch sử Google kernelCTF – và nhanh chóng thu giữ các cờ COS.

Sau đó, họ đã vượt qua thử thách giảm thiểu của Google, chứng minh khả năng vượt qua toàn bộ chuỗi tấn công (full chain bypass) chống lại các biện pháp phòng thủ thử nghiệm.

Biện pháp khắc phục và giảm thiểu

Đội ngũ bảo mật của Google đã khắc phục nguyên nhân gốc rễ của lỗ hổng CVE-2025-38001 trong commit ac9fe7dd8e73, phiên bản này xác thực và ngăn chặn các mục nhập RBTree trùng lặp. Bản vá đã được hợp nhất vào upstream và được bao gồm trong Linux 6.6.8 cùng các bản phát hành điểm sắp tới của Debian 12.

Các chiến lược giảm thiểu tạm thời cho đến khi áp dụng bản vá bao gồm:

  • Vô hiệu hóa tính năng sao chép của NETEM dưới HFSC.
  • Tránh sử dụng HFSC_RSC trên các máy chủ không đáng tin cậy.

Các quản trị viên hệ thống nên cập nhật kernel kịp thời và xem xét cấu hình kiểm soát lưu lượng để loại bỏ các kết hợp HFSC+NETEM tiềm ẩn rủi ro.

Bài học và ý nghĩa

Nghiên cứu này, được mô tả chi tiết trên blog Syst3mfailure.io, nhấn mạnh giá trị bền vững của việc kiểm tra mã thủ công (manual code auditing) song song với kỹ thuật fuzzing. Các tương tác phức tạp của bộ lập lịch có thể dẫn đến các lỗ hổng CVE không rõ ràng, và việc điều tiết hàng đợi một cách sáng tạo có thể biến một vòng lặp vô hại thành một lỗ hổng có thể khai thác được.

Với lỗ hổng CVE-2025-38001 hiện đã được giải quyết, việc cập nhật bản vá bảo mật là vô cùng quan trọng để duy trì an ninh mạng cho hệ thống.