CVE-2026-74307 in Linuxthông tin

Tóm tắt

Bởi VulDB • 15/08/2026

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

ext4: xác minh siêu khối (superblock) của tệp hiến tặng (donor file) sớm trong EXT4_IOC_MOVE_EXT

Từ chối lệnh ioctl EXT4_IOC_MOVE_EXT ngay từ đầu nếu tệp hiến tặng không thuộc cùng một siêu khối với tệp gốc. Hiện tại, việc xác minh này được thực hiện bên trong hàm ext4_move_extents() bởi mext_check_validity(), nhưng chỉ sau khi lock_two_nondirectories() đã nắm giữ các khóa inode (inode locks). Khi fd của tệp hiến tặng tham chiếu đến một file trên một hệ thống tập tin khác (ví dụ: overlayfs), việc xác minh muộn này tạo ra sự phụ thuộc vòng lặp về khóa (circular lock dependency):

CPU0 (ghi overlayfs) CPU1 (ioctl ext4) ---- ---- inode_lock(ovl_inode) mnt_want_write_file(filp) sb_start_write(ext4_sb) [sb_writers]
backing_file_write_iter() vfs_iter_write(real_file) file_start_write(real_file) sb_start_write(ext4_sb) [bị chặn bởi freeze]
lock_two_nondirectories() inode_lock(ovl_inode) [bị chặn]

Với một thao tác đồng thời (concurrent) là freeze đang giữ mặt ghi của sb_writers, điều này tạo thành chu trình chết (deadlock cycle): CPU0 chờ đợi quá trình freeze hoàn tất, quá trình freeze chờ độc giả sb_writers của CPU1 thoát ra, và CPU1 chờ khóa inode của CPU0.

Vì EXT4_IOC_MOVE_EXT trao đổi các extents vật lý giữa hai file, nó về cơ bản yêu cầu cả hai file phải nằm trên cùng một hệ thống tập tin ext4. Việc di chuyển kiểm tra siêu khối trước khi nắm giữ bất kỳ khóa nào vừa đúng về mặt ngữ nghĩa (semantically correct) vừa loại bỏ sự phụ thuộc vòng lặp bằng cách đảm bảo rằng các fd hiến tặng liên quan đến cross-filesystem bị từ chối trước khi sb_writers hoặc inode locks được lấy.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

15/08/2026

Tiết lộ

15/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00166

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!