CVE-2026-68478 in Linuxthông tin

Tóm tắt

Bởi VulDB • 16/08/2026

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

memstick: ms_block: từ chối một thẻ báo cáo số khối quá lớn

Hàm `msb_ftl_initialize()` tính toán số lượng vùng (zone) dựa trên số khối của thẻ mà không có giới hạn nào:

msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE; ... for (i = 0; i < msb->zone_count; i++) msb->free_block_count[i] = MS_BLOCKS_IN_ZONE;

`msb->block_count` là một giá trị từ thẻ. Hàm `msb_read_boot_blocks()` đọc số khối (`number_of_blocks`) từ trang khởi động của thẻ và thực hiện đổi byte (byte swap). Mảng `free_block_count` có kiểu cố định là `int[MS_MAX_ZONES]`. Giá trị `MS_MAX_ZONES` bằng 16, do đó các chỉ mục hợp lệ nằm trong khoảng từ 0 đến 15. Vòng lặp khởi tạo ở trên sử dụng `zone_count` làm chỉ mục cho mảng này. Các hàm `msb_mark_block_used()` và `msb_mark_block_unused()` cũng truy cập vào mảng này bằng cách dùng chỉ số `pba / MS_BLOCKS_IN_ZONE`, với giá trị `pba` lên đến `block_count - 1`. Một thẻ có thể báo cáo tối đa 65.535 khối. Nếu `block_count` lớn hơn 8.192 (tức là `MS_MAX_ZONES * MS_BLOCKS_IN_ZONE`), chỉ số `pba` sẽ đạt tới giá trị 16, dẫn đến ghi dữ liệu vượt ra ngoài mảng `free_block_count[]` và làm hỏng cấu trúc `msb_data`. Một giá trị đếm lớn hơn cũng khiến vòng lặp khởi tạo chạy quá giới hạn cuối cùng của mảng.

Một thẻ Memory Stick thực tế có tối đa 16 vùng (zones). Do đó, nó chỉ có tối đa 8.195 khối. Hàm `msb_ftl_initialize()` hiện đã được sửa để từ chối một thẻ báo cáo số khối lớn hơn `MS_MAX_ZONES * MS_BLOCKS_IN_ZONE`.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

30/07/2026

Tiết lộ

15/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00210

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you know our Splunk app?

Download it now for free!