Khai thác Zero-Day: Lỗ hổng Bad Epoll nguy hiểm

Khai thác Zero-Day: Lỗ hổng Bad Epoll nguy hiểm

Một lỗ hổng nhân Linux mới được công bố, mang tên “Bad Epoll” (CVE-2026-46242), cho phép người dùng cục bộ không có đặc quyền leo thang lên quyền root trên các máy chủ Linux, máy tính để bàn và thiết bị Android. Lỗ hổng này khai thác một điều kiện tranh chấp (race condition) và lỗi sử dụng sau khi giải phóng (use-after-free – UAF) trong hệ thống con epoll của nhân Linux. Lỗ hổng này là một ví dụ điển hình về khai thác zero-day và nhấn mạnh tầm quan trọng của việc cập nhật bản vá bảo mật kịp thời.

Chi tiết về Lỗ hổng Bad Epoll (CVE-2026-46242)

Bản chất của lỗi Use-After-Free

Bad Epoll là một lỗ hổng UAF tồn tại trong hàm ep_remove(). Hàm này thực hiện việc xóa file->f_ep dưới sự kiểm soát của file->f_lock, nhưng sau đó vẫn tiếp tục sử dụng đối tượng tệp bên trong một khu vực quan trọng trong quá trình thực thi hlist_del_rcu()spin_unlock().

Một lệnh gọi đồng thời tới __fput() có thể quan sát thấy một giá trị NULL tạm thời, bỏ qua bước eventpoll_release_file(), và đi thẳng đến f_op->release. Điều này dẫn đến việc giải phóng một cấu trúc eventpoll đang được theo dõi mà vẫn còn đang sử dụng, gây ra tình trạng hỏng bộ nhớ kernel.

Tác động và Khả năng Khai thác

Do cấu trúc file được đánh dấu là SLAB_TYPESAFE_BY_RCU, vùng nhớ đã giải phóng có thể bị tái sử dụng bởi hàm alloc_empty_file(). Điều này cho phép kẻ tấn công thực hiện lệnh gọi kmem_cache_free() trên một bộ nhớ cache sai, dẫn đến lỗi nghiêm trọng.

Lỗ hổng này được phát hiện và khai thác bởi nhà nghiên cứu Jaeyoung Chung. Ông đã báo cáo lỗ hổng này dưới dạng một zero-day cho chương trình kernelCTF của Google, chương trình này trao thưởng từ 71.337 USD trở lên cho các mã khai thác nhân Linux hoạt động.

So sánh với các Lỗ hổng Leo thang Đặc quyền Khác

Điểm đặc biệt của Bad Epoll là khả năng chiếm quyền root trên Android. Điều này trái ngược với hầu hết các lỗ hổng leo thang đặc quyền trên Linux khác, vốn thường khai thác các mô-đun tùy chọn có thể bị vô hiệu hóa hoặc gỡ bỏ. epoll là một thành phần cốt lõi của nhân và không thể bị tắt hoặc gỡ bỏ mà không ảnh hưởng đến hoạt động của hệ điều hành.

Khả năng khai thác Bad Epoll còn trở nên đáng lo ngại hơn khi nó có thể được kích hoạt từ bên trong sandbox của trình duyệt Chrome. Điều này mở ra khả năng chuỗi một cuộc tấn công khai thác lỗ hổng trình duyệt với Bad Epoll để đạt được thực thi mã ở cấp độ kernel.

Kỹ thuật Khai thác Chi tiết

Mặc dù cửa sổ tranh chấp chỉ rộng khoảng sáu lệnh, mã khai thác của Chung đã mở rộng cửa sổ này và thực hiện thử lại mà không làm sập nhân, đạt được độ tin cậy khoảng 99% trên các mục tiêu được thử nghiệm. Điều này cho thấy sự tinh vi của kỹ thuật khai thác.

Một bản sửa đổi duy nhất vào năm 2023 đã vô tình đưa hai điều kiện tranh chấp riêng biệt vào cùng một đoạn mã epoll gồm 2.500 dòng. Lỗ hổng đầu tiên, CVE-2026-43074, được phát hiện bởi mô hình AI Mythos của Anthropic, cho thấy khả năng ngày càng tăng của AI trong việc tìm kiếm các lỗi tranh chấp trong nhân.

Bad Epoll là lỗ hổng thứ hai, khó phát hiện hơn, mà Mythos đã bỏ lỡ, có lẽ do cửa sổ thời gian hẹp của nó và thực tế là nó hiếm khi kích hoạt KASAN (công cụ phát hiện lỗi bộ nhớ chính của nhân), để lại rất ít bằng chứng trong quá trình hoạt động. Bản vá lỗi đầu tiên của các nhà bảo trì đã không giải quyết hoàn toàn vấn đề, và một bản sửa lỗi chính xác đã được áp dụng gần hai tháng sau khi công bố ban đầu.

Mã khai thác sử dụng bốn đối tượng epoll được nhóm thành hai cặp. Việc đóng một cặp sẽ kích hoạt điều kiện tranh chấp, trong khi cặp còn lại trở thành đối tượng bị tấn công. Kỹ thuật này biến một lỗi ghi UAF 8 byte thành một lỗi UAF trên một đối tượng tệp thông qua một cuộc tấn công vượt bộ nhớ cache (cross-cache attack).

Từ đó, kẻ tấn công có quyền truy cập đọc bộ nhớ kernel tùy ý thông qua /proc/self/fdinfo và chiếm quyền điều khiển luồng thực thi bằng một chuỗi tấn công Return-Oriented Programming (ROP) để đạt được một shell root. Điều này minh chứng cho sự phức tạp của các mối đe dọa hiện đại.

Ảnh hưởng Hệ thống và Các Biện pháp Khắc phục

Tác động lên Hệ thống

Với khả năng leo thang đặc quyền lên root, Bad Epoll cho phép kẻ tấn công giành quyền kiểm soát hoàn toàn hệ thống. Điều này có thể dẫn đến việc đánh cắp dữ liệu nhạy cảm, cài đặt mã độc, hoặc sử dụng hệ thống bị xâm nhập làm bàn đạp cho các cuộc tấn công khác.

Do epoll là một thành phần không thể thiếu và không thể vô hiệu hóa mà không làm hỏng chức năng cốt lõi của hệ điều hành và trình duyệt, không có giải pháp tạm thời (workaround) nào có sẵn. Do đó, quản trị viên hệ thống bắt buộc phải áp dụng bản vá upstream hoặc chờ đợi bản vá được phân phối lại từ nhà cung cấp.

Khuyến nghị về An ninh mạng

Việc phát hiện và vá lỗ hổng Bad Epoll là cực kỳ quan trọng để đảm bảo an ninh mạng. Các tổ chức cần:

  • Thường xuyên theo dõi các thông báo bảo mật từ nhà cung cấp hệ điều hành và các nguồn tin cậy.
  • Nhanh chóng áp dụng cập nhật bản vá khi chúng sẵn sàng.
  • Triển khai các giải pháp giám sát và phát hiện xâm nhập (IDS/IPS) để phát hiện các hoạt động bất thường.
  • Thực hiện kiểm tra bảo mật định kỳ và đánh giá rủi ro để xác định và giảm thiểu các lỗ hổng tiềm ẩn.

Việc hiểu rõ bản chất và cách thức khai thác của các lỗ hổng như Bad Epoll là nền tảng để xây dựng các chiến lược phòng thủ hiệu quả, góp phần nâng cao khả năng chống chịu của hệ thống trước các cuộc tấn công mạng ngày càng tinh vi.

Live patching là một kỹ thuật quan trọng trong việc áp dụng các bản vá bảo mật khẩn cấp mà không cần khởi động lại hệ thống, giúp giảm thiểu thời gian gián đoạn dịch vụ khi đối mặt với các lỗ hổng nghiêm trọng như CVE-2026-46242.