CVE-2026-68388
Tóm tắt
Bởi VulDB • 10/08/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
smb/client: xử lý các phạm vi bộ nhớ đã phân bổ bị chồng lấn trong fallocate
Hàm smb3_simple_fallocate_range() có thể bỏ qua các khoảng trống (holes) khi một phạm vi đã phân bổ do máy chủ trả về bắt đầu trước offset hiện tại của lệnh gọi fallocate. Khoảng trống bị bỏ qua không được điền bằng số 0, nhưng hàm fallocate vẫn trả về kết quả thành công. Do đó, việc ghi dữ liệu vào khoảng trống này sau đó có thể thất bại với lỗi ENOSPC (không đủ dung lượng).
Hàm này truy vấn các phạm vi đã phân bổ để bảo toàn nội dung hiện có và chỉ điền số 0 vào các khoảng trống. Tuy nhiên, máy chủ có thể trả về một phạm vi bắt đầu trước offset fallocate hiện tại.
Ví dụ: giả sử yêu cầu fallocate là [100, 400) và phạm vi đã phân bổ duy nhất do máy chủ trả về là [0, 200):
Yêu cầu: [100, 400)
Phạm vi máy chủ: [ 0, 200) đã phân bổ
Đúng (Correct): [100, 200) Dữ liệu đã phân bổ, bỏ qua
[200, 400) Khoảng trống (hole), điền số 0
Hiện tại (Current): [100, 300) Bị bỏ qua
[300, 400) Được điền số 0 sau đó
Mã hiện tại cộng toàn bộ độ dài phạm vi của máy chủ là 200 vào offset hiện tại là 100 và chuyển đến vị trí 300. Kết quả là khoảng trống trong đoạn [200, 300) bị bỏ qua mà không được điền số 0.
Khắc phục vấn đề này bằng cách chỉ di chuyển tiến lên trên phần của phạm vi đã phân bổ chồng lấn với offset fallocate hiện tại. Bỏ qua các phạm vi kết thúc trước offset hiện tại và từ chối các phạm vi có offset cuối gây tràn (overflow).
Việc này cũng ngăn chặn một độ dài phạm vi không hợp lệ gây ra việc đọc bộ đệm số 0 vượt quá giới hạn (out-of-bounds zero-buffer read).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.