RefluXFS, một lỗ hổng nhân Linux kernel mới được công bố vào ngày 22 tháng 7 và được theo dõi dưới mã định danh CVE-2026-64600, cho phép người dùng cục bộ không có đặc quyền ghi đè lên các tệp thuộc quyền sở hữu của root trên hệ thống tệp XFS và chiếm quyền truy cập root vĩnh viễn.
Qualys cho biết các bản cài đặt mặc định của Red Hat Enterprise Linux (RHEL) và các bản phân phối dẫn xuất của nó, Fedora Server và Amazon Linux có thể đáp ứng các điều kiện để bị khai thác.
Công ty đã trình diễn kỹ thuật race condition nhắm vào tệp /etc/passwd và các tệp thực thi setuid-root. Việc ghi đè xảy ra ở block layer. Nó vẫn tồn tại sau khi khởi động lại và giữ nguyên quyền sở hữu, quyền hạn, mốc thời gian cũng như bit setuid của mục tiêu, do đó một tệp thực thi setuid-root đã bị sửa đổi vẫn chạy với quyền root.
Bản vá đã được hợp nhất vào ngày 16 tháng 7 và các nhà cung cấp Linux đã bắt đầu phát hành các nhân hệ điều hành được backport. Bản vá truy nguyên lỗi này từ phiên bản Linux 4.11 vào năm 2017: một thẻ Fixes: chỉ định commit 3c68d44a2b49 và một yêu cầu backport ổn định được đánh dấu # v4.11.
Những đối tượng bị ảnh hưởng
Việc khai thác đòi hỏi ba điều kiện:
- Hệ thống chạy Linux 4.11 hoặc mới hơn mà chưa được vá lỗi RefluXFS.
- Hệ thống tệp XFS được tạo với tùy chọn
reflink=1. - Mục tiêu có thể đọc được và một thư mục mà kẻ tấn công có quyền ghi nằm trên cùng một hệ thống tệp XFS.
Qualys khuyến cáo nên vá các hệ thống tiếp xúc trực tiếp và các hệ thống đa người dùng (multi-tenant) trước tiên, bao gồm bất kỳ máy chủ XFS nào đã kích hoạt reflink nơi mã không đáng tin cậy có thể chạy cục bộ, cho dù thông qua shell, một CI job hay một dịch vụ bị xâm nhập.
Thông báo liệt kê các bản cài đặt mặc định có thể đáp ứng những điều kiện này: Red Hat Enterprise Linux, CentOS Stream, Oracle Linux, Rocky Linux, AlmaLinux và CloudLinux phiên bản 8, 9 và 10, Fedora Server 31 trở lên, Amazon Linux 2023 và các hình ảnh Amazon Linux 2 từ tháng 12 năm 2022 trở đi. Các hệ thống tệp RHEL 7 không bị ảnh hưởng vì chúng có trước khi XFS hỗ trợ reflink.
Debian, Ubuntu, SLES và openSUSE thường không sử dụng XFS cho hệ thống tệp root theo mặc định. Chúng chỉ gặp nguy hiểm nếu quản trị viên chọn XFS với reflink được kích hoạt tại thời điểm cài đặt.
Kiểm tra hệ thống tệp root bằng lệnh:
xfs_info / | grep reflink=
Nếu kết quả là reflink=1 nghĩa là điều kiện thứ hai đã được đáp ứng. Hãy thực hiện kiểm tra tương tự trên bất kỳ phân vùng XFS nào khác nơi một tệp được bảo vệ và một thư mục kẻ tấn công có quyền ghi chia sẻ cùng hệ thống tệp.
Ánh xạ lỗi thời (Stale Mapping)
Kẻ tấn công sao chép (clone) một tệp thuộc quyền sở hữu của root vào một tệp tạm bằng FICLONE (chỉ cần quyền đọc trên nguồn), sau đó thực hiện race condition với các hoạt động ghi O_DIRECT đồng thời lên bản sao đó. XFS reflink sử dụng cơ chế copy-on-write, vì vậy ban đầu cả hai tệp đều tham chiếu đến cùng một khối đĩa vật lý.
Nhân hệ điều hành đọc ánh xạ data-fork dưới inode lock và chuyển nó cho xfs_reflink_fill_cow_hole(), hàm này sẽ xoay vòng khóa đó để dự trữ không gian giao dịch.
Một tiến trình ghi thứ hai có thể hoàn tất thao tác copy-on-write trong khoảng trống đó và ánh xạ lại tệp đã clone sang một khối mới. Khi tiến trình ghi đầu tiên lấy lại khóa, nó sẽ làm mới copy-on-write fork nhưng vẫn tiếp tục sử dụng ánh xạ data-fork cũ.
Bản vá thượng nguồn mô tả lỗi này một cách rõ ràng: "các ánh xạ trở nên lỗi thời ngay khi chúng ta lấy lại ILOCK."
Địa chỉ lỗi thời đó hiện trỏ đến một khối chỉ thuộc sở hữu của tệp được bảo vệ ban đầu. XFS coi khối đó là chưa được chia sẻ và cho phép ghi trực tiếp, vì vậy dữ liệu dành cho bản sao của kẻ tấn công lại rơi vào mục tiêu thay thế.
Đây là một lỗi check-then-use (kiểm tra rồi mới sử dụng) xảy ra qua một chu kỳ khóa. Bản thân việc truy vấn trạng thái chia sẻ là chính xác; nhưng cái mà nó truy vấn là một địa chỉ khối được ghi lại trước khi khóa được giải phóng.
The Hacker News nhận thấy bản vá tác động đến hai hàm hỗ trợ là xfs_reflink_fill_cow_hole() và xfs_reflink_fill_delalloc(). Hàm thứ hai cũng mang mô hình chu kỳ khóa tương tự và không xuất hiện trong báo cáo của Qualys. Trong cả hai trường hợp, bản vá sẽ chụp nhanh ip->i_df.if_seq trước khi khóa bị bỏ và đọc lại data fork bằng xfs_bmapi_read() nếu bộ đếm thay đổi.
Direct I/O bỏ qua page cache và không có cơ chế xác thực lại (revalidation hook), vì vậy việc ghi sẽ thực hiện thẳng xuống đĩa. Vì nó bỏ qua hoàn toàn inode mục tiêu, siêu dữ liệu (metadata) không bao giờ thay đổi và các nhà nghiên cứu cho biết các thử nghiệm của họ không tạo ra cảnh báo nhân hệ điều hành hoặc mục nhật ký nào.
Trên máy thử nghiệm, race condition thường giành chiến thắng trong vòng chưa đầy mười giây. Bản demo đã công bố thực hiện xóa mật khẩu root trên một máy chạy RHEL 10.2 mặc định.
Qualys cho biết một mô hình AI đã tìm thấy lỗ hổng này. Công ty đã sử dụng Claude Mythos Preview, một mô hình tiên tiến bị hạn chế quyền truy cập của Anthropic, để quét nhân hệ điều hành và yêu cầu nó "tìm một lỗ hổng tương tự như Dirty COW".
Mô hình đã xác định được race condition, viết một mã khai thác root hoạt động được và soạn thảo báo cáo. Các nhà nghiên cứu sau đó đã tái hiện lỗi trên bản cài đặt Fedora Server 44 gốc, kiểm tra lập luận của mô hình và phối hợp công bố lỗi với thượng nguồn.
Cập nhật bản vá và khởi động lại
Red Hat đã phát hành các khuyến cáo nhân hệ điều hành được xếp hạng Quan trọng (Important) cho các phiên bản RHEL 8, 9 và 10 bị ảnh hưởng. Các bản vá lỗi bắt đầu được tung ra vào ngày 14 tháng 7, tám ngày trước khi công bố phối hợp: RHSA-2026:39179 và RHSA-2026:39180 cho RHEL 8 và RHSA-2026:39494 cho RHEL 10.
Phạm vi bao phủ tùy thuộc vào từng phiên bản cụ thể, vì vậy hãy xác nhận rằng có khuyến cáo cho bản phát hành chính xác của bạn. Bất kỳ ai đã áp dụng các bản vá đó đúng lịch trình đều đã được bảo vệ trước khi RefluXFS có tên gọi chính thức.
Trình theo dõi lỗi của nhà cung cấp đã lưu hồ sơ lỗi này dưới tiêu đề "kernel: XFS data corruption using reflink." Mục này được nhập tự động vào ngày 10 tháng 7 và ban đầu mô tả vấn đề là khả năng gây hỏng dữ liệu khi reflink một tệp.
Tính đến ngày 23 tháng 7, trình theo dõi của Debian đã liệt kê bản vá trong trixie-security là nhân 6.12.96-1 và trong bản unstable là 7.1.4-1. Các phiên bản cũ hơn vẫn bị đánh dấu là dễ bị tổn thương.
Không có tùy chọn mount hoặc sysctl nào có thể vô hiệu hóa XFS reflink sau khi hệ thống tệp đã được tạo và Qualys cho biết không có biện pháp giảm thiểu thực tế hoặc thay đổi cấu hình tạm thời nào khả dụng. SELinux ở chế độ Enforcing, seccomp, kernel lockdown và ranh giới container đều thất bại trong việc ngăn chặn nó trong các thử nghiệm của công ty. Các biện pháp bảo vệ bộ nhớ như KASLR và SMEP không bao giờ có tác dụng: đây là một lỗi ghi ở lớp block, không phải hỏng bộ nhớ.
Qualys không công bố mã khai thác độc lập. Trình theo dõi của Red Hat đã ghi nhận một proof-of-concept công khai vào ngày 22 tháng 7. Cho đến thời điểm viết bài, chưa có nhà cung cấp nào báo cáo về việc lỗ hổng này bị khai thác trong thực tế.
Việc cài đặt gói cập nhật không thay thế nhân đang chạy trong bộ nhớ. Hãy áp dụng bản cập nhật từ nhà cung cấp, khởi động lại hệ thống và xác minh rằng nó đang chạy nhân đã được vá lỗi.