Lỗ hổng CVE mới trên Linux, được đặt tên là PinTheft, đã có mã khai thác proof-of-concept (PoC) được công bố công khai. Lỗi này cho phép kẻ tấn công cục bộ leo thang đặc quyền lên root thông qua một lỗi double-free trong đường dẫn RDS zerocopy.
Lỗ hổng CVE PinTheft Và Ảnh Hưởng Hệ Thống
PinTheft được phát hiện bởi Aaron Esau thuộc V12 security team. Theo mô tả kỹ thuật, lỗ hổng CVE nằm trong subsystem mạng và I/O bất đồng bộ của Linux kernel, cụ thể là Reliable Datagram Sockets (RDS) trong đường dẫn gửi zerocopy.
Hàm rds_message_zcopy_from_user() pin các trang bộ nhớ của người dùng từng trang một trong quá trình thực thi. Nếu trang tiếp theo gây lỗi page fault, nhánh xử lý lỗi sẽ thả các trang đã pin trước đó. Tuy nhiên, khi dọn dẹp message RDS sau đó, các trang này lại bị thả lần thứ hai vì scatterlist entry và bộ đếm entry vẫn còn hoạt động sau khi zcopy notifier xóa trạng thái.
Điều này tạo ra tình trạng double-free, cho phép mỗi lần gửi RDS zerocopy thất bại đánh cắp chính xác một reference từ trang đầu tiên. Đây là nền tảng kỹ thuật dẫn đến remote code execution cục bộ theo hướng Local Privilege Escalation (LPE).
Cơ Chế Khai Thác
Để khai thác lỗi reference count này, PoC PinTheft sử dụng io_uring. Kẻ tấn công đăng ký một anonymous page làm fixed buffer, gán cho trang đó bias FOLL_PIN tương đương 1024 references.
Khác với các lỗi bộ nhớ đơn thuần, kỹ thuật này liên tục “rút” reference thông qua các lần gửi RDS zerocopy thất bại, cho đến khi io_uring chỉ còn giữ một con trỏ tới trang đã bị chiếm reference. Chính chuỗi thao tác này khiến PoC được đặt tên là PinTheft.
Kho khai thác công khai cũng mô tả một trình tự khai thác có cấu trúc để đạt quyền root, đồng thời cố gắng hạn chế hư hỏng hệ thống kéo dài. Mã PoC được đăng tại GitHub:
https://github.com/v12-security/pocs/tree/09e835b587bf71249775654061ae4c79e92cf430/pintheft#pintheft
Điều Kiện Kích Hoạt Lỗ Hổng CVE
Về mặt kiến trúc, primitive khai thác không phụ thuộc kiến trúc CPU, nhưng ELF shell nhúng trong PoC được biên dịch riêng cho môi trường x86_64. Lỗ hổng CVE này cũng yêu cầu một cấu hình kernel cụ thể mới có thể kích hoạt thành công.
Mức độ phơi nhiễm mặc định có sự khác nhau giữa các bản phân phối Linux. Theo nhóm nghiên cứu, module kernel RDS cần thiết chỉ được bật mặc định trên Arch Linux trong số các hệ thống đã thử nghiệm.
Để đối chiếu thông tin lỗ hổng kernel và theo dõi tình trạng vá lỗi, có thể tham khảo thêm cơ sở dữ liệu của NVD tại https://nvd.nist.gov/.
Ảnh Hưởng Đến Bộ Nhớ Và SUID Binary
Nhà nghiên cứu cảnh báo rằng việc chạy exploit sẽ làm thay đổi page cache trong bộ nhớ của các SUID binaries quan trọng. Sau khi khai thác, reboot hoặc xóa cache có thể xóa thay đổi trong bộ nhớ, nhưng hệ thống kiểm thử cần được xử lý thận trọng để tránh việc chương trình phổ biến vô tình thực thi payload sau đó.
Đây là một rủi ro bảo mật đáng chú ý trong bối cảnh lỗ hổng CVE ảnh hưởng trực tiếp đến kernel, vì tác động không chỉ dừng ở việc leo thang đặc quyền mà còn có thể làm biến đổi trạng thái bộ nhớ của tiến trình hệ thống.
Biện Pháp Giảm Thiểu Và Bản Vá Bảo Mật
Quản trị viên nên áp dụng ngay bản vá bảo mật kernel mới nhất từ nhà duy trì bản phân phối. Khi việc cập nhật bản vá chưa khả thi hoặc RDS không cần thiết, có thể giảm thiểu bằng cách chặn hoàn toàn module dễ bị ảnh hưởng.
Để ngăn module RDS tự động tải khi khởi động, sử dụng cấu hình modprobe sau:
printf 'install rds /bin/false\ninstall rds_tcp /bin/false\n' > /etc/modprobe.d/pintheft.confTrên hệ thống đang chạy, cũng cần gỡ module đang hoạt động ngay lập tức:
rmmod rds_tcp rdsTrong ngữ cảnh cảnh báo CVE, cách giảm thiểu này phù hợp cho hệ thống chưa thể triển khai ngay cập nhật bản vá, đặc biệt khi module RDS không phục vụ nhu cầu vận hành.
Trạng Thái Khai Thác Và Liên Hệ Với Các Lỗ Hổng CVE Khác
PinTheft xuất hiện cùng thời điểm với làn sóng công bố exploit cho các lỗ hổng CVE Linux kernel đã được vá trước đó. Nhóm nghiên cứu cũng ghi nhận các PoC khác nhắm vào những lỗi LPE đã được theo dõi như DirtyDecrypt và DirtyCBC.
Các lỗi này có điểm tương đồng về mặt khái niệm với Dirty Frag, Fragnesia và Copy Fail, cho thấy một xu hướng liên tục của các primitive bộ nhớ phức tạp trong nhân Linux. Trong bối cảnh đó, lỗ hổng CVE PinTheft là ví dụ điển hình cho rủi ro an toàn thông tin phát sinh từ lỗi quản lý reference count và cleanup logic trong kernel networking.
Quản trị viên nên theo dõi chặt chẽ lỗ hổng CVE liên quan đến kernel, rà soát trạng thái module RDS, và ưu tiên triển khai update vá lỗi khi nhà phân phối phát hành bản cập nhật tương ứng.










