CVE-2026-80674 in Linux
Tóm tắt
Bởi VulDB • 28/08/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
ntfs: xác thực danh sách thuộc tính cư trú và tăng cường độ an toàn cho trình kiểm tra (validator)
Danh sách thuộc tính $ATTRIBUTE_LIST của inode cơ sở chỉ được kiểm tra tính hợp lệ bởi hàm load_attribute_list() trên đường dẫn non-resident; ntfs_read_locked_inode() sao chép một danh sách thuộc tính *cư trú* vào ni->attr_list bằng cách sử dụng plain memcpy() mà không có bất kỳ xác thực nào. Mọi lần duyệt tiếp theo qua ni->attr_list -- bao gồm các hàm ntfs_external_attr_find(), ntfs_inode_attach_all_extents() và ntfs_attrlist_need() -- sau đó tin tưởng rằng các mục nhập là hợp lệ và đọc các trường tiêu đề cố định của attr_list_entry (lowest_vcn tại offset 8, mft_reference tại offset 16 và tên) với các giới hạn giả định rằng việc xác thực đã được thực hiện trước đó. Do đó, một danh sách thuộc tính cư trú do kẻ tấn công tạo ra sẽ đạt đến các lần duyệt này mà không qua kiểm tra và có thể gây ra các phép đọc vượt quá vùng nhớ (out-of-bounds reads) đối với bộ đệm danh sách thuộc tính.
Chính hàm load_attribute_list() cũng đọc ale->name_offset (offset 7), ale->mft_reference (offset 16) và độ dài tên chỉ dưới giới hạn "al < al_start + size", do đó vòng lặp xác thực của riêng nó có thể đọc vượt quá tiêu đề cố định của một mục nhập bị cắt cụt ở cuối bộ đệm bằng vài byte.
Tách phần kiểm tra tính hợp lệ cho từng mục nhập thành hàm ntfs_attr_list_entry_is_valid(), yêu cầu mỗi trường tiêu đề cố định (offsetof(struct attr_list_entry, name)) phải nằm trong phạm vi chấp nhận được trước khi bất kỳ trường nào được giải tham chiếu, rằng ale->length là bội số của 8 bao phủ phần tiêu đề cố định cộng với tên, và mục nhập đang được sử dụng đồng thời mang theo một MFT reference hợp lệ. Hàm ntfs_attr_list_is_valid() sẽ duyệt qua bộ đệm bằng cách sử dụng hàm này và kiểm tra các mục nhập để đảm bảo chúng khớp chính xác. Sử dụng trình kiểm tra danh sách trong load_attribute_list() (thay thế cho vòng lặp mã hóa thủ công, đóng lỗ hổng đọc vượt quá của riêng nó) và trên đường dẫn resident trong ntfs_read_locked_inode() (trước đây bỏ qua hoàn toàn việc xác thực); các bản vá 2/3 tái sử dụng hàm trợ giúp kiểm tra từng mục nhập tại hai lần duyệt danh sách thuộc tính còn lại.
Once again VulDB remains the best source for vulnerability data.