PinTheft là lỗ hổng leo thang đặc quyền cục bộ trong nhân Linux, khai thác lỗi double‑free trong RDS zerocopy để ghi đè page cache bằng io uring và cuối cùng chiếm quyền root. Khai thác yêu cầu kẻ tấn công đã có quyền thực thi cục bộ, kernel dễ bị lỗi, module RDS khả dụng và quyền sử dụng io uring fixed buffers.

Create a landscape editorial hero image for this Studio Global article: What is the “PinTheft” Linux kernel privilege escalation vulnerability, how does the exploit work (including the RDS zerocopy double‑free bu. Article summary: PinTheft is a recently disclosed Linux local privilege escalation affecting the kernel’s RDS subsystem, where an RDS zerocopy reference-count/double-free bug can be chained with io_uring fixed buffers to overwrite page-c. Topic tags: general, general web. Reference image context from search candidates: Reference image 1: visual subject "# Re: PinTheft Linux LPE. > > v12-security have shared a new Linux LPE today, PinTheft [0]. > > > PinTheft is a Linux local privilege escalation exploit for an RDS zerocopy double-" source context "Re: PinTheft Linux LPE - oss-sec" Reference image 2: visual subject "# PinTheft: New Linux Exploit Steals Kernel References to Root
Một lỗ hổng mới trong nhân Linux có tên PinTheft cho phép kẻ tấn công leo thang đặc quyền lên root bằng cách khai thác lỗi trong hệ thống Reliable Datagram Sockets (RDS). Lỗi này kết hợp một bug double‑free trong cơ chế zerocopy với tính năng io_uring fixed buffers, cho phép kẻ tấn công thao túng bộ nhớ page cache và cuối cùng sửa đổi nội dung của một tệp SUID‑root để thực thi với quyền cao nhất.
Theo các báo cáo bảo mật, lỗ hổng được phát hiện bởi Aaron Esau thuộc nhóm V12 Security. Sau khi bản vá kernel được phát hành, một mã khai thác proof‑of‑concept (PoC) cũng đã được công bố công khai. Lỗ hổng này thuộc loại local privilege escalation (LPE), nghĩa là kẻ tấn công cần có quyền chạy mã cục bộ trên hệ thống trước khi khai thác.
PinTheft nằm trong subsystem RDS (Reliable Datagram Sockets) của Linux. Đây là giao thức mạng thường xuất hiện trong các môi trường hiệu năng cao như cụm InfiniBand hoặc hệ thống HPC.
Lỗi xuất hiện ở đường gửi dữ liệu zerocopy của RDS. Zerocopy là kỹ thuật giúp kernel gửi dữ liệu trực tiếp từ bộ nhớ người dùng mà không cần sao chép sang buffer trung gian, giúp tăng hiệu năng nhưng cũng khiến việc quản lý bộ nhớ phức tạp hơn.
Trong quá trình này, hàm kernel rds_message_zcopy_from_user() sẽ pin (giữ cố định) từng trang bộ nhớ của người dùng để chuẩn bị gửi dữ liệu. Nếu xảy ra lỗi page fault ở một trang sau đó, đường xử lý lỗi sẽ giải phóng các trang đã pin trước đó — nhưng trong một số điều kiện lại giải phóng sai, gây ra lỗi double‑free hoặc sai lệch reference count.
Chính lỗi quản lý bộ nhớ này tạo nền tảng cho chuỗi khai thác dẫn đến leo thang đặc quyền.
Các nhà nghiên cứu cho thấy lỗi RDS có thể kết hợp với các tính năng I/O hiện đại của Linux để biến một lỗi bộ nhớ thành công cụ leo thang đặc quyền đáng tin cậy.
Kẻ tấn công có quyền truy cập cục bộ sẽ kích hoạt đường xử lý zerocopy của RDS. Khi xảy ra page fault trong quá trình pin trang bộ nhớ, logic dọn dẹp sẽ giải phóng nhầm các trang vẫn còn được tham chiếu, khiến kernel rơi vào trạng thái bộ nhớ không nhất quán.
Sau đó, khai thác sử dụng io_uring fixed buffers — một tính năng cho phép ứng dụng đăng ký trước vùng bộ nhớ để thực hiện I/O bất đồng bộ hiệu năng cao.
Bằng cách điều khiển các buffer này, kẻ tấn công có thể tái cấp phát lại các trang bộ nhớ vật lý vừa bị giải phóng, từ đó kiểm soát dữ liệu trong những vùng bộ nhớ liên quan đến lỗi RDS.
Các trang bộ nhớ bị ảnh hưởng có thể thuộc page cache — bộ nhớ đệm mà kernel dùng để lưu dữ liệu file trong RAM.
Khi đó, kẻ tấn công có thể thay đổi dữ liệu file trong page cache mà không cần ghi trực tiếp vào file trên đĩa. Kernel vẫn nghĩ nội dung file hợp lệ và phục vụ dữ liệu đã bị thay đổi.
Chuỗi khai thác nhắm vào một chương trình SUID‑root. Nếu nội dung file trong page cache bị sửa, kernel sẽ thực thi phiên bản đã bị chỉnh sửa nhưng vẫn giữ quyền root của file.
Khi người dùng chạy chương trình này, mã độc sẽ được thực thi với đặc quyền root, cho phép kẻ tấn công kiểm soát toàn bộ hệ thống.
Không phải mọi hệ thống Linux đều dễ bị tấn công như nhau. Mức độ rủi ro phụ thuộc nhiều vào cấu hình kernel và module.
Các báo cáo bảo mật cho biết Arch Linux là môi trường dễ bị ảnh hưởng nhất vì:
Điều này khiến Arch trở thành nền tảng thử nghiệm đầu tiên cho khai thác PinTheft.
Bất kỳ bản phân phối Linux nào cũng có thể bị ảnh hưởng nếu:
Tuy nhiên nhiều bản phân phối doanh nghiệp không bật module này theo mặc định.
Các báo cáo cho thấy cài đặt mặc định của Ubuntu, Debian, RHEL và AlmaLinux có thể ít bị ảnh hưởng hơn vì module RDS thường không được kích hoạt. Tuy vậy quản trị viên vẫn nên kiểm tra cấu hình kernel thực tế thay vì dựa vào giả định.
CloudLinux cho biết họ đã thử nghiệm PoC trên nhiều phiên bản nền tảng và xác nhận rằng các hệ thống của họ không bị ảnh hưởng.
Thông thường, khai thác PinTheft cần hội đủ các yếu tố sau:
Nếu thiếu một trong các điều kiện này, chuỗi khai thác sẽ khó thực hiện hoặc không thể thành công.
Các nhà phát triển kernel đã phát hành bản vá cho đoạn mã RDS bị lỗi. Việc cập nhật kernel mới nhất từ nhà cung cấp bản phân phối là biện pháp quan trọng nhất.
Sau khi cập nhật, hệ thống cần khởi động lại để kernel mới có hiệu lực.
Nếu hạ tầng của bạn không dùng RDS networking, nên giảm bề mặt tấn công bằng cách ngăn module này được load.
Các cách phổ biến gồm:
rdsVì chuỗi khai thác dựa vào io_uring fixed buffers, việc hạn chế hoặc tắt io_uring đối với người dùng không đặc quyền có thể giảm đáng kể rủi ro.
Giai đoạn cuối của khai thác nhắm vào file SUID, vì vậy nên:
PinTheft yêu cầu thực thi mã cục bộ, do đó các hệ thống multi‑user, máy build CI, máy chủ hosting chia sẻ hoặc máy phát triển cần được ưu tiên vá và gia cố bảo mật.
PinTheft cho thấy nhiều khai thác kernel hiện đại không dựa vào một lỗi duy nhất mà kết hợp nhiều subsystem phức tạp. Trong trường hợp này là sự kết hợp giữa RDS networking và framework I/O bất đồng bộ io_uring để biến lỗi quản lý bộ nhớ thành công cụ leo thang đặc quyền mạnh mẽ.
Ngay cả những module kernel ít được chú ý cũng có thể trở thành bề mặt tấn công nguy hiểm khi kết hợp với các tính năng hiệu năng mới. Việc cập nhật kernel thường xuyên và giảm thiểu module không cần thiết vẫn là biện pháp phòng vệ hiệu quả nhất.
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
PinTheft là lỗ hổng leo thang đặc quyền cục bộ trong nhân Linux, khai thác lỗi double‑free trong RDS zerocopy để ghi đè page cache bằng io uring và cuối cùng chiếm quyền root.
PinTheft là lỗ hổng leo thang đặc quyền cục bộ trong nhân Linux, khai thác lỗi double‑free trong RDS zerocopy để ghi đè page cache bằng io uring và cuối cùng chiếm quyền root. Khai thác yêu cầu kẻ tấn công đã có quyền thực thi cục bộ, kernel dễ bị lỗi, module RDS khả dụng và quyền sử dụng io uring fixed buffers.
Biện pháp phòng vệ chính gồm cập nhật kernel đã vá, vô hiệu hóa module RDS nếu không cần thiết và hạn chế io uring cho người dùng không đặc quyền.