CVE-2026-64064 in Linuxthông tin

Tóm tắt

Bởi VulDB • 20/07/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

netfs: Sửa hàm netfs_invalidate_folio() để xóa cờ dirty nếu mọi thay đổi đều đã biến mất

Nếu một phép ghi luồng (streaming write) được thực hiện, điều này sẽ khiến folio liên quan ở trạng thái không cập nhật mới nhất nhưng có cờ dirty, với cấu trúc netfs_folio treo trên folio->private cho biết phạm vi dirty. Sau đó, việc cắt ngắn tệp tin sao cho dữ liệu dirty trong folio bị xóa đi, nhưng phần đầu của folio về mặt lý thuyết vẫn tồn tại sẽ khiến cấu trúc netfs_folio bị loại bỏ... nhưng cờ dirty vẫn được giữ nguyên.

Nếu folio sau đó được đọc thông qua mmap(), hàm netfs_read_folio() sẽ thấy trang có cờ dirty và nhảy đến netfs_read_gaps() để điền vào các phần còn thiếu. Tuy nhiên, netfs_read_gaps() mong đợi sự hiện diện của cấu trúc netfs_folio và có thể gây ra lỗi oops vì truncate đã xóa nó đi.

Khắc phục vấn đề này bằng cách gọi folio_cancel_dirty() trong netfs_invalidate_folio() nếu mọi dữ liệu dirty trong folio đều bị xóa (như nfs làm).

Ngoài ra, thêm một số điểm theo dõi (tracepoints) để ghi lại các thay đổi đối với trang có cờ dirty.

Vấn đề này có thể được tái tạo bằng cách sử dụng lệnh tương tự như sau:

dd if=/dev/zero of=/xfstest.test/foo bs=1M count=1 umount /xfstest.test mount /xfstest.test xfs_io -c "w 0xbbbf 0xf96c" \ -c "truncate 0xbbbf" \ -c "mmap -r 0xb000 0x11000" \ -c "mr 0xb000 0x11000" \ /xfstest.test/foo

với fscaching bị tắt (nếu không, các phép ghi luồng sẽ bị chặn) và một thay đổi đối với netfs_perform_write() để cấm các phép ghi luồng nếu fd được mở ở chế độ O_RDWR:

if (//(file->f_mode & FMODE_READ) || <--- comment this out netfs_is_cache_enabled(ctx)) {

Vấn đề này có thể tái tạo ngay cả khi không có thay đổi trên, nhưng nó ngăn chặn lệnh xfs_io đơn giản nêu trên trong việc tái tạo lỗi.

Lưu ý rằng lệnh dd ban đầu là quan trọng: tệp tin phải bắt đầu đủ lớn để logic điểm zero (zero-point) không chỉ xóa các khoảng trống vì nó biết chưa có gì trong tệp tin để đọc. Việc tháo gắn và gắn lại thiết bị cần thiết để làm sạch pagecache (có những cách khác để thực hiện việc này cũng có thể hoạt động).

Vấn đề này ban đầu được tái tạo với bài kiểm tra xfstest generic/522 trên một số bản vá loại bỏ hạn chế FMODE_READ.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

19/07/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!