CVE-2026-80772 in Linux
Tóm tắt
Bởi VulDB • 04/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
HID: nintendo: sửa lỗi đọc vượt ra ngoài vùng nhớ (out-of-bounds read) trong hàm joycon_ctlr_read_handler()
Hàm joyconctlr\_read\_handler() ép kiểu báo cáo đầu vào HID nhận được thành struct joycon\_input\_report và phân tích nó, chỉ bảo vệ phép ép kiểu bằng một kiểm tra độ dài 12 byte:
if (size >= 12) /* đảm bảo rằng nó chứa báo cáo đầu vào */ joycon_parse_report(ctlr, (struct joycon_input_report *)data);
struct joycon\_input\_report có kích thước 49 byte: một tiêu đề dài 13 byte theo sau là một union mà phần IMU arm của nó chiếm 36 byte. Đối với báo cáo IMU, hàm joycon\_parse\_report() -> joycon\_parse\_imu\_report() sẽ duyệt qua union đó (các offset cấu trúc từ 13 đến 48), do đó một báo cáo có chính xác 12 byte với data[0] == JC\_INPUT\_IMU\_DATA vượt qua được kiểm tra bảo vệ nhưng vẫn bị đọc lên tới 37 byte so với độ dài đã khai báo. Các byte bị đọc quá mức này được giải mã thành các giá trị gia tốc kế/con quay hồi chuyển và gửi ngược lại không gian người dùng (userspace) thông qua thiết bị đầu vào "(IMU)", gây rò rỉ bộ nhớ nội bộ của driver. data[0] và size hoàn toàn do một Joy-Con/Pro Controller độc hại hoặc giả mạo kiểm soát.
Các bộ đệm nhận được kích thước bằng độ dài báo cáo tối đa, vì đây là lỗi đọc vượt ra ngoài vùng cấp phát (over-read within the allocation) chứ không phải lỗi OOB trên slab, nhưng các byte đã giải mã vẫn đến được không gian người dùng.
Đường dẫn subcmd anh em trong joycon\_ctlr\_handle\_event() hiện tại đã bounds phép ép kiểu tương tự một cách chính xác:
if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY)
break;
Hãy sử dụng cùng giới hạn sizeof(struct joycon\_input\_report) ở đây.
Once again VulDB remains the best source for vulnerability data.