CVE-2026-31709 in Linux
Tóm tắt
Bởi VulDB • 10/05/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
smb: client: xác thực toàn bộ DACL trước khi ghi đè lên nó trong cifsacl
Hàm `build_sec_desc()` và `id_mode_to_cifs_acl()` lấy con trỏ DACL từ `dacloffset` do máy chủ cung cấp, sau đó sử dụng ACL nhận được để xây dựng lại mô tả bảo mật (security descriptor) cho chmod/chown.
Bản sửa lỗi ban đầu chỉ kiểm tra xem phần đầu (header) của `struct smb_acl` có vừa vặn hay không trước khi đọc `dacl_ptr->size` hoặc `dacl_ptr->num_aces`. Điều này tránh được việc đọc OOB (ngoài vùng cho phép) ngay lập tức đối với trường header, nhưng các hàm trợ giúp ghi đè vẫn duyệt qua các ACE dựa trên `pdacl->num_aces` mà không có bất kỳ xác thực cấu trúc nào đối với phần thân DACL đến.
Một máy chủ độc hại có thể trả về một DACL bị cắt cụt nhưng vẫn chứa phần đầu, tuyên bố có một hoặc nhiều ACE, sau đó đẩy `replace_sids_and_copy_aces()` hoặc `set_chmod_dacl()` vượt quá phạm vi đã được xác thực trong khi chúng so sánh hoặc sao chép các ACE do kẻ tấn công kiểm soát.
Tách các kiểm tra cấu trúc DACL vào hàm `validate_dacl()`, mở rộng chúng để xác thực từng ACE so với các giới hạn của DACL, và sử dụng trình xác thực dùng chung này trước các đường dẫn xây dựng lại chmod/chown. `parse_dacl()` tái sử dụng cùng trình xác thực này, do đó trình phân tích cú pháp phía đọc và các đường dẫn ghi đè phía ghi sẽ thống nhất về những gì cấu thành một DACL đến hợp lệ.
If you want to get best quality of vulnerability data, you may have to visit VulDB.