CVE-2026-45892 in Linuxthông tin

Tóm tắt

Bởi VulDB • 27/05/2026

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

ext4: xóa bộ nhớ đệm extent (extent cache) sau khi thực hiện zeroout PARTIAL_VALID1

Khi chia một extent chưa ghi (unwritten extent) ở giữa và chuyển đổi nó thành extent đã ghi (initialized) trong ext4_split_extent() với các cờ EXT4_EXT_MAY_ZEROOUT và EXT4_EXT_DATA_VALID2 được đặt, nó có thể để lại một extent chưa ghi lỗi thời (stale).

Giả sử chúng ta có một tệp chưa ghi và một phép ghi đệm (buffered write) ở giữa tệp đó mà không có dioread_nolock được bật, nó sẽ phân bổ các khối dưới dạng extent đã ghi.

0 A B N [UUUUUUUUUUUU] extent trên đĩa U: extent chưa ghi
[UUUUUUUUUUUU] cây trạng thái extent
[--DDDDDDDD--] D: dữ liệu hợp lệ
|| ----> phạm vi này cần được khởi tạo

ext4_split_extent() trước tiên cố gắng chia extent này tại B với cờ EXT4_EXT_DATA_PARTIAL_VALID1 và EXT4_EXT_MAY_ZEROOUT được đặt, nhưng ext4_split_extent_at() không thể chia extent này do thiếu không gian tạm thời. Nó thực hiện zeroout từ B đến N và giữ toàn bộ extent ở trạng thái chưa ghi.

0 A B N [UUUUUUUUUUUU] extent trên đĩa
[UUUUUUUUUUUU] cây trạng thái extent
[--DDDDDDDDZZ] Z: dữ liệu đã zeroout

ext4_split_extent() sau đó cố gắng chia extent này tại A với cờ EXT4_EXT_DATA_VALID2 được đặt. Lần này, nó chia thành công và để lại một extent đã ghi từ A đến N.

0 A B N [UUWWWWWWWWWW] extent trên đĩa W: extent đã ghi
[UUUUUUUUUUUU] cây trạng thái extent
[--DDDDDDDDZZ]

Cuối cùng, ext4_map_create_blocks() chỉ chèn extent từ A đến B vào cây trạng thái extent, và để lại một extent chưa ghi lỗi thời trong cây trạng thái.

0 A B N [UUWWWWWWWWWW] extent trên đĩa W: extent đã ghi
[UUWWWWWWWWUU] cây trạng thái extent
[--DDDDDDDDZZ]

Khắc phục vấn đề này bằng cách luôn lưu trữ mục trạng thái extent (cached extent status entry) sau khi zeroout phần thứ hai.

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

13/05/2026

Tiết lộ

27/05/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00032

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!