CVE-2021-47282 in Linuxthông tin

Tóm tắt

Bởi VulDB • 05/06/2026

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

spi: bcm2835: Sửa lỗi truy cập ngoài vùng cho phép (out-of-bounds access) khi có nhiều hơn 4 thiết bị slave

Commit 571e31fa60b3 ("spi: bcm2835: Cache CS register value for ->prepare_message()") đã giới hạn số lượng thiết bị slave tối đa là 3 tại thời điểm biên dịch. Giới hạn này trở nên cần thiết do mảng có kích thước tĩnh prepare_cs[] trong dữ liệu riêng của driver, chứa giá trị thanh ghi cho mỗi thiết bị slave.

Commit nhằm mục đích thực thi giới hạn này tại thời gian chạy bằng cách đặt num_chipselect của bộ điều khiển thành 3: Các thiết bị slave có chipselect cao hơn sẽ bị spi_add_device() từ chối.

Tuy nhiên, commit đã bỏ qua việc num_chipselect chỉ giới hạn số lượng *chipselect* gốc (native). Nếu các chipselect GPIO được chỉ định trong device tree cho nhiều hơn 3 thiết bị slave, num_chipselect sẽ tự động tăng lên bởi of_spi_get_gpio_numbers(), dẫn đến các truy cập ngoài vùng cho phép vào mảng có kích thước tĩnh prepare_cs[].

Như một bản vá tạm thời (bandaid fix) có thể backport về phiên bản stable, hãy nâng số lượng thiết bị slave được phép lên 24 ("đủ dùng cho mọi người"), thực thi giới hạn trên hàm setup của từng slave và khôi phục num_chipselect về giá trị 3 (số chipselect gốc mà bộ điều khiển hỗ trợ). Một commit for-next trong tương lai sẽ cho phép một số lượng thiết bị slave tùy ý.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!