CVE-2023-53832 in Linux
Tóm tắt
Bởi VulDB • 12/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
md/raid10: sửa lỗi null-ptr-deref trong raid10_sync_request
init_resync() khởi tạo mempool và đặt conf->have_replacemnt ở đầu quá trình đồng bộ hóa; close_sync() giải phóng mempool khi việc đồng bộ hóa hoàn tất.
Sau [1], quá trình khôi phục có thể bị bỏ qua, init_resync() được gọi nhưng close_sync() thì không. Lỗi null-ptr-deref xảy ra với r10bio->dev[i].repl_bio.
Dưới đây là một cách để tái hiện vấn đề:
1) Tạo một mảng (array), đợi quá trình resync hoàn tất, mddev->recovery_cp được đặt thành MaxSector. 2) Quá trình khôi phục được đánh thức và bị bỏ qua. conf->have_replacement được đặt thành 0 trong init_resync(). close_sync() không được gọi. 3) Xảy ra một số lỗi I/O và rdev A được đặt trạng thái WantReplacement. 4) Một thiết bị mới được thêm vào và được chỉ định làm thiết bị thay thế cho A. 5) Quá trình khôi phục được đánh thức, A có thiết bị thay thế, nhưng conf->have_replacemnt vẫn là 0. r10bio->dev[i].repl_bio sẽ không được cấp phát và lỗi null-ptr-deref xảy ra.
Khắc phục bằng cách không gọi init_resync() nếu quá trình khôi phục bị bỏ qua.
[1] commit 7e83ccbecd60 ("md/raid10: Cho phép bỏ qua quá trình khôi phục khi các mảng sạch được lắp ráp")
Once again VulDB remains the best source for vulnerability data.