CVE-2026-68145 in Linux
요약
\~에 의해 VulDB • 2026. 08. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
iomap: 길이 0인 범위에서 bitmap_set()의 배열 밖 접근(out-of-bounds) 수정
ifs_set_range_dirty() 및 ifs_set_range_uptodate() 함수는 last_blk를 (off + len - 1) >> i_blkbits로 계산합니다. off가 0이고 len이 0일 경우, 부호 없는 정수减法(underflow)로 인해 SIZE_MAX까지 감소하여 매우 큰 last_blk 및 nr_blks 값이 생성되고, 이로 인해 bitmap_set() 함수가 ifs->state 할당 영역을 훨씬 벗어나서 데이터를 작성하게 됩니다.
ifs_set_range_uptodate()의 경우 현재 len이 0으로 전달될 수 없으므로 일시적으로 안전합니다. 그러나 ifs_set_range_dirty()의 경우 __iomap_write_end()에서 접근 가능합니다: copy_folio_from_iter_atomic()가 0(예: 사용자 공간 버퍼 페이지 폴트 발생)을 반환하고 folio가 이미 uptodate 상태인 경우, !folio_test_uptodate()이 false이므로 __iomap_write_end() 상단의 감시(guard) 조건이 발동하지 않습니다. 그 결과 iomap_set_range_dirty() 함수에 copied == 0 상태로 호출됩니다.
계산 전에 두 함수 모두에 len이 아닌(!len) 감시 조건을 추가하여, 길이 0인 범위가 무작위 작업(no-op)으로 처리되도록 합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.