CVE-2026-90096 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 17.

Linux 커널에서 다음 취약점이 해결되었습니다:

fuse: O_APPEND 직접 쓰기 후 올바른 범위를 무효화함

fuse_direct_write_iter()는 generic_write_checks() 호출 전에 pos를 캡처합니다. 이 함수는 O_APPEND 쓰기에 대해 ki_pos를 EOF로 이동시킵니다:

fuse_direct_write_iter() {
pos = iocb->ki_pos; /* 0 (사용자 제공) */ generic_write_checks(); /* ki_pos -> EOF */ fuse_direct_io(); /* EOF에 쓰기, 정확함 */ invalidate(pos, pos + res); /* [0, res) -- 잘못됨 */
}

쓰기 후 무효화 대상이 실제 쓰기가 이루어진 EOF 범위가 아닌 stale(구식/낡은) 범위를 대상으로 합니다.

파일 크기가 페이지 정렬(page-aligned)되지 않은 경우 데이터 불일치를 초래할 수 있습니다. EOF를 가로지르는 tail page는 EOF 이전에 유효한 부분을 가지며, 이는 DIO 쓰기 창 동안 동시 읽기 프로세스가 fault back 할 수 있습니다:

Tail page (파일 크기 X가 페이지 정렬되지 않음):

page_start X (EOF) page_end |--- valid data ----|-- stale --|

CPU0 (O_APPEND DIO 작성자) CPU1 (버퍼드 리더) -------------------------- -------------------- invalidate [X, X+len)
tail page evicted(캐시에서 제거됨) FUSE_WRITE in flight ... read [page_start, X)
tail page re-faulted(재 fault 발생) [X, page_end) = stale(구식 데이터)
FUSE_WRITE 완료 i_size = X + len invalidate [0, len) <- 잘못됨
tail page still cached(캐시 유지됨) read [X, X+len)
stale tail page에 hit(일치) 이전 데이터를 반환

generic_file_direct_write()가 수행하는 방식대로 generic_write_checks() 호출 후 iocb->ki_pos에서 pos를 다시 읽음으로써 수정합니다.

또한 주석 내 오타("may have" -> "may have competed")도 수정했습니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 11.

모더레이션

수락

항목

VDB-406589

EPSS

0.00000

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!