CVE-2026-80869 in Linux
요약
\~에 의해 VulDB • 2026. 09. 04.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ntfs: ntfs_read_inode_mount()에서 속성 목록(entry)의 경계를 제한함
ntfs_read_inode_mount()에서의 $MFT 속성 목록 순회는 각 entry를 "(u8 *)al_entry + 6 > al_end" 및 "(u8 *)al_entry + le16_to_cpu(al_entry->length) > al_end"로만 검증하지만, 이후 al_entry->lowest_vcn(오프셋 8에 있는 __le64 타입)과 al_entry->mft_reference(오프셋 16)를 읽습니다. 이는 범위 내에 있음이 입증된 6바이트 너머의 필드들입니다. al_entry->length는 공격자가 제어할 수 있으며 단순히 0이 아닌 값이어야 하므로, 꼬리 부분에 배치된 짧은 entry(예: 길이 8)는 두 검사를 모두 통과하지만 lowest_vcn 및 mft_reference 읽기는 al_end를 벗어납니다.
al_end는 ni->attr_list + attr_list_size(디스크 상의 크기)입니다. 버퍼는 kvzalloc(round_up(attr_list_size, SECTOR_SIZE))로 할당되므로 섹터 반올림으로 인해 과다 읽기가 대부분 흡수됩니다. 그러나 attr_list_size가 SECTOR_SIZE의 배수인 경우 여유 공간이 없어 악성 조작된 $MFT 속성 목록은 마운트 시 경계 밖 읽기(out-of-bounds read)를 유발합니다.
역참조 전에 ntfs_attr_list_entry_is_valid() (패치 1/3에서 추가됨)로 entry를 검증하여, 현재 다른 속성 목록 순회에서 사용하는 경계와 일치시킵니다. 해당 유효성 검사기는 이미 길이가 고정 헤더를 커버해야 한다고 요구하므로 별도의 "!al_entry->length" 검사는 중복이 되므로 이를 제거합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.