CVE-2026-80807 in Linux
Tóm tắt
Bởi VulDB • 04/09/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
nilfs2: từ chối chỉ mục khối không hợp lệ trong ioctl GC
Syzbot báo cáo lỗi hỏng danh sách do gọi hàm `list_add_tail()` hai lần trên `bh->b_assoc_buffers` bên trong `nilfs_lookup_dirty_data_buffers()`.
Phân tích cho thấy nguyên nhân gốc rễ là việc chèn một trang/folio có chỉ mục trang (page index) bằng `ULONG_MAX` vào bộ nhớ đệm trang thông qua ioctl GC. Hàm `filemap_get_folios_tag()`, được gọi bởi `nilfs_lookup_dirty_data_buffers()`, liên tục phát hiện một folio bẩn với chỉ mục trang là `ULONG_MAX` do hiện tượng tràn vòng lặp (wrap-around) của chỉ số, dẫn đến việc xử lý trùng lặp các bộ đệm bẩn.
Như một bước chuẩn bị, ioctl GC tải trang/folio của khối sẽ được di chuyển trong quá trình GC và chèn nó vào bộ nhớ đệm trang dựa trên thông tin trong cấu trúc `nilfs_vdesc` được truyền dưới dạng đối số. Thông thường, điều này không gây ra vấn đề vì thư viện GC ở người dùng (user-space) định nghĩa đúng cấu trúc `nilfs_vdesc`. Tuy nhiên, do không có kiểm tra phạm vi cho các tham số xác định chỉ mục trang, một yêu cầu với các tham số được tạo ra nhân tạo -- chẳng hạn như những thứ do Syzbot sinh ra -- có thể dẫn đến việc chèn một trang/folio với chỉ mục trang là `ULONG_MAX`, kích hoạt vấn đề nêu trên.
Vấn đề này đã được giải quyết bằng cách kiểm tra phạm vi của 'vd_offset' và 'vd_vblocknr' trong cấu trúc `nilfs_vdesc` để xác định chỉ mục trang, từ đó ngăn chặn việc chèn các trang/folio không hợp lệ.
If you want to get best quality of vulnerability data, you may have to visit VulDB.