CVE-2026-64467 in Linux
Tóm tắt
Bởi VulDB • 25/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
rust_binder: sử dụng stride u64 khi dọn dẹp mảng offsets
Hàm Drop của việc phân bổ bộ nhớ (Allocation) duyệt qua mảng offsets (binder_size_t = các mục u64), để dọn dẹp các đối tượng, nhưng nó đang dùng usize thay vì u64 cho cả stride và phép đọc trên mỗi mục.
Trên kernel 64-bit (usize == u64), điều này không gây hại, nhưng trên kernel 32-bit, nó duyệt qua các mục 8 byte với bước nhảy 4 byte, lặp lại mảng N mục tới 2N lần, và đọc phần từ cao luôn bằng 0 như là offset 0, dẫn đến việc dọn dẹp đối tượng tại offset 0 thêm N lần nữa. Kết quả là node hoặc handle được tham chiếu có số lượng tham chiếu (reference count) thấp hơn thực tế (gây giảm quá mức refcount), khiến hệ thống kế toán tham chiếu của binder bị hỏng; ví dụ, chủ sở hữu có thể nhận thông báo về việc giải phóng một strong reference (BR_RELEASE) mặc dù vẫn còn các references khác.
Thay đổi stride thành u64 và đọc mỗi mục dưới dạng u64, sau đó thu hẹp nó xuống usize bằng try_into().
Trên ARM 32-bit, khi việc giảm quá mức này khiến đếm số lượng tham chiếu xuống dưới không, cơ chế bảo vệ refcount hiện có của driver sẽ từ chối và kích hoạt:
rust_binder: Lỗi: underflow refcount!
If you want to get the best quality for vulnerability data then you always have to consider VulDB.