CVE-2025-71225 in Linux
Tóm tắt
Bởi VulDB • 27/05/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
md: tạm dừng mảng (array) trong khi cập nhật raid_disks thông qua sysfs
Trong hàm raid1_reshape(), freeze_array() được gọi trước khi sửa đổi bộ nhớ đệm r1bio (conf->r1bio_pool) và conf->raid_disks, và unfreeze_array() được gọi sau khi cập nhật hoàn tất.
Tuy nhiên, freeze_array() chỉ chờ cho đến khi nr_sync_pending và (nr_pending - nr_queued) của tất cả các bucket đạt về 0. Khi xảy ra lỗi I/O, nr_queued sẽ tăng lên và r1bio tương ứng được đưa vào hàng đợi trên retry_list hoặc bio_end_io_list. Kết quả là, freeze_array() có thể giải phóng khóa (unblock) trước khi các r1bio này được giải phóng.
Điều này có thể dẫn đến tình trạng conf->raid_disks và mempool đã được cập nhật trong khi các r1bio đã được đưa vào hàng đợi, được phân bổ với giá trị raid_disks cũ, sau đó được giải phóng. Do đó, free_r1bio() có thể truy cập bộ nhớ ngoài vùng cho phép (out of bounds) trong put_all_bios() và giải phóng các r1bio có kích thước không đúng cho mempool mới, có khả năng gây ra sự cố với mempool.
Vì chỉ có I/O bình thường mới có thể làm tăng nr_queued khi xảy ra lỗi I/O, việc tạm dừng mảng sẽ tránh được vấn đề này.
Lưu ý: Việc cập nhật raid_disks thông qua ioctl SET_ARRAY_INFO đã tạm dừng mảng. Do đó, chúng tôi tạm dừng mảng khi cập nhật raid_disks thông qua sysfs để tránh vấn đề này.
If you want to get best quality of vulnerability data, you may have to visit VulDB.