Lỗ hổng Linux bị công khai mã khai thác, nguy cơ chiếm quyền root gia tăng

WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
141
2.006 bài viết
Lỗ hổng Linux bị công khai mã khai thác, nguy cơ chiếm quyền root gia tăng
Lỗ hổng nghiêm trọng vừa được phát hiện trong nhân (kernel) Linux đang làm dấy lên lo ngại trong cộng đồng an ninh mạng khi có thể cho phép người dùng không có đặc quyền giành toàn quyền điều khiển hệ thống. Đáng chú ý, chỉ một ngày sau khi mã định danh CVE được công bố, PoC đã xuất hiện công khai làm gia tăng đáng kể nguy cơ các cuộc tấn công thực tế.
0c56fdb3-bafe-485b-a777-c3f412cc4415.png

Lỗ hổng có mã CVE-2026-46331, còn được các nhà nghiên cứu đặt tên là "pedit COW", ảnh hưởng đến thành phần điều khiển lưu lượng mạng của Linux. Các chuyên gia cảnh báo những hệ thống nhiều người dùng, máy chủ CI/CD, Kubernetes hay môi trường nghiên cứu dùng chung cần được ưu tiên cập nhật bản vá ngay lập tức.​

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

CVE-2026-46331 là một lỗ hổng ghi dữ liệu ngoài vùng nhớ tồn tại trong thành phần act_pedit của hệ thống Traffic Control (tc) trên Linux.

Lỗ hổng được Red Hat đánh giá ở mức Important và cho phép một người dùng cục bộ không có quyền quản trị leo thang đặc quyền để chiếm quyền root trên hệ thống bị ảnh hưởng.

Điểm đáng lo ngại là cuộc tấn công không cần khai thác từ xa mà chỉ cần tài khoản người dùng thông thường trên máy. Trong nhiều môi trường như máy chủ chia sẻ, máy build phần mềm, máy chủ Kubernetes hoặc hệ thống nhiều người dùng, điều này vẫn tạo ra nguy cơ rất lớn.​

Nguyên nhân của lỗ hổng nằm ở cơ chế Copy-on-Write của Linux​

Lỗ hổng xuất phát từ thành phần Traffic Control (tc) - công cụ của Linux dùng để quản lý và chỉnh sửa lưu lượng mạng. Trong tc có một chức năng mang tên pedit, cho phép kernel chỉnh sửa các trường dữ liệu của gói tin khi chúng đi qua hệ thống. Theo thiết kế, trước khi sửa đổi dữ liệu, kernel phải thực hiện cơ chế Copy-on-Write (COW). Nghĩa là nếu vùng nhớ đang được nhiều tiến trình cùng sử dụng, kernel sẽ tạo một bản sao riêng rồi mới chỉnh sửa nhằm tránh làm thay đổi dữ liệu gốc.

Tuy nhiên, trong hàm tcf_pedit_act(), kernel lại kiểm tra phạm vi bộ nhớ có thể ghi quá sớm, trước khi xác định chính xác vị trí cuối cùng cần chỉnh sửa.

Khi một số khóa chỉnh sửa (edit keys) chỉ được xác định trong quá trình chạy (runtime), thao tác ghi dữ liệu có thể vượt ra ngoài vùng bộ nhớ riêng vừa được tạo và vô tình ghi trực tiếp vào page cache – vùng nhớ dùng chung để lưu nội dung các tệp tin trên hệ thống. Chính sai sót này khiến dữ liệu trong page cache bị thay đổi dù tập tin gốc trên ổ đĩa hoàn toàn không hề bị sửa.​

Khai thác lỗ hổng như thế nào?​

Theo các nhà nghiên cứu, quá trình khai thác diễn ra theo cơ chế khá tinh vi.

Đầu tiên, kẻ tấn công sử dụng quyền CAP_NET_ADMIN có được trong User Namespace để tạo các quy tắc Traffic Control chứa hành động pedit. Khi kernel xử lý quy tắc này, lỗi kiểm tra vùng nhớ khiến dữ liệu bị ghi đè lên bản sao đang nằm trong page cache của một tệp thực thi đặc quyền, chẳng hạn /bin/su.

Kẻ tấn công chèn vào đó một đoạn mã nhỏ (payload). Điều đặc biệt là:​
  • File /bin/su trên ổ cứng hoàn toàn không thay đổi.​
  • Kiểm tra checksum hoặc File Integrity Monitoring vẫn cho kết quả bình thường.​
  • Chỉ có bản sao đang tồn tại trong bộ nhớ bị sửa đổi.​
Ngay khi người dùng hoặc chính kẻ tấn công thực thi /bin/su, hệ thống sẽ chạy phiên bản đã bị chỉnh sửa trong bộ nhớ thay vì bản gốc trên đĩa, từ đó mở một root shell và trao toàn quyền điều khiển máy.

Nói cách khác, kẻ tấn công có thể chiếm quyền root mà gần như không để lại dấu vết trên tập tin gốc.​

Những hệ thống nào bị ảnh hưởng?​

Theo thử nghiệm của tác giả PoC, việc leo thang đặc quyền từ người dùng thường lên root đã được chứng minh thành công trên:​
  • RHEL 10​
  • Debian 13 (Trixie)​
Ubuntu cũng chịu ảnh hưởng nhưng mức độ khác nhau giữa các phiên bản. Ubuntu 24.04 vẫn có thể bị khai thác nếu tận dụng các cấu hình AppArmor cho phép User Namespace. Trong khi đó Ubuntu 26.04 đã hạn chế đáng kể đường khai thác nhờ các chính sách AppArmor mới, mặc dù kernel bên dưới vẫn tồn tại lỗ hổng.

Red Hat xác nhận:​
  • RHEL 8 bị ảnh hưởng​
  • RHEL 9 bị ảnh hưởng​
  • RHEL 10 bị ảnh hưởng​
Riêng RHEL 7 không nằm trong danh sách bị tác động. Ở phía Debian, bản vá đã được phát hành cho Debian 13 thông qua kênh bảo mật, nhưng Debian 11 và Debian 12 vẫn được liệt kê là còn tồn tại lỗ hổng.​

Mã khai thác xuất hiện chỉ sau một ngày​

Một chi tiết khiến giới an ninh mạng đặc biệt lo ngại là PoC được công bố chỉ một ngày sau khi CVE được cấp mã. Thực tế, bản vá của lỗi này đã được gửi lên danh sách thư netdev từ cuối tháng 5 dưới dạng một bản sửa lỗi tưởng như chỉ nhằm khắc phục tình trạng hỏng dữ liệu thông thường. Không có cảnh báo bảo mật, không có mã CVE, không ai nhận ra đây là một lỗ hổng leo thang đặc quyền.

Chỉ đến ngày 16/6, khi bản vá chính thức được hợp nhất và được gán mã CVE-2026-46331, các nhà nghiên cứu mới nhanh chóng phân tích thay đổi trong mã nguồn, nhận diện khả năng khai thác và công bố PoC chỉ trong vòng 24 giờ.

Điều này một lần nữa cho thấy việc phân tích các commit vá lỗi công khai đã trở thành phương pháp phổ biến để các nhà nghiên cứu cũng như tin tặc nhanh chóng xây dựng mã khai thác trước khi nhiều hệ thống kịp cập nhật bản vá.​

Rủi ro nếu bị khai thác​

Nếu lỗ hổng bị khai thác thành công, kẻ tấn công có thể:​
  • Chiếm toàn quyền root trên máy Linux.​
  • Cài đặt backdoor hoặc rootkit để duy trì quyền truy cập lâu dài.​
  • Đánh cắp dữ liệu nhạy cảm.​
  • Tắt các cơ chế bảo mật.​
  • Mở rộng tấn công sang các máy chủ khác trong cùng hệ thống.​
  • Thực hiện các hành vi phá hoại hoặc triển khai mã độc tống tiền.​
Đặc biệt nguy hiểm là việc sửa đổi diễn ra trên page cache trong bộ nhớ, khiến nhiều giải pháp kiểm tra tính toàn vẹn của tệp tin không thể phát hiện dấu hiệu bất thường.​

Các chuyên gia khuyến nghị làm gì?​

Các chuyên gia khuyến nghị quản trị viên cần ưu tiên cập nhật kernel đã được vá và khởi động lại hệ thống càng sớm càng tốt.

Trong trường hợp chưa thể cập nhật ngay, có thể áp dụng một số biện pháp giảm thiểu tạm thời như vô hiệu hóa module act_pedit nếu hệ thống không sử dụng tính năng này hoặc tắt User Namespace dành cho người dùng không có đặc quyền. Tuy nhiên, giải pháp này có thể ảnh hưởng tới container không đặc quyền, môi trường CI/CD hoặc một số trình duyệt và ứng dụng sandbox, do đó cần đánh giá kỹ trước khi triển khai.

Nếu nghi ngờ hệ thống đã bị khai thác, việc chỉ xóa page cache sẽ không đủ vì kẻ tấn công có thể đã mở được phiên làm việc với quyền root. Trong trường hợp đó, máy chủ cần được coi là đã bị xâm nhập và tiến hành quy trình ứng phó sự cố đầy đủ, bao gồm điều tra, thu thập bằng chứng và cài đặt lại nếu cần thiết.​
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
cve-2026-46331 linux poc
Bên trên