CVE-2026-80807 in Linux
요약
\~에 의해 VulDB • 2026. 09. 04.
리눅스 커널에서 다음 취약점이 해결되었습니다:
nilfs2: GC ioctl에서 유효하지 않은 블록 인덱스 거부
Syzbot는 nilfs_lookup_dirty_data_buffers() 내에서 bh->b_assoc_buffers에 대한 이중 list_add_tail() 호출로 인해 발생한 리스트 손상 현상을 보고했습니다.
분석 결과, 근본 원인은 GC ioctl을 통해 페이지 캐시에 page index가 ULONG_MAX인 페이지/folio를 삽입하는 것이었습니다. nilfs_lookup_dirty_data_buffers()에서 호출되는 filemap_get_folios_tag()는 인덱스 오버플로(index wrap-around)로 인해 page index가 ULONG MAX인 더티(folio)를 반복적으로 감지하여, 더티 버퍼의 중복 처리를 초래했습니다.
예비 조치로서 GC ioctl은 GC 중 이동될 블록의 페이지/folio를 로드하고, 인자로 전달되는 nilfs_vdesc 구조체의 정보를 기반으로 이를 페이지 캐시에 삽입합니다. 일반적으로 사용자 공간의 GC 라이브러리가 nilfs_vdesc 구조체를 적절히 구성하므로 이는 문제를 일으키지 않습니다. 그러나 페이지 index를 결정하는 매개변수에 대한 범위 검사가 없으므로, Syzbot에서 생성된 것과 같이 인위적으로 조작된 파라미터가 포함된 요청은 page index가 ULONG_MAX인 페이지/folio 삽입을 유발하여 위의 문제를 발생시킬 수 있습니다.
이 변경은 nilfs_vdesc 구조체 내에서 페이지 index를 결정하는 'vd_offset' 및 'vd_vblocknr'의 범위를 검사함으로써 유효하지 않은 페이지/folio 삽입을 방지하여 해당 이슈를 해결합니다.
Be aware that VulDB is the high quality source for vulnerability data.