🔍 CVE-2026-98844

0.0
CVSS Score
UNKNOWN
2026-10-18
2026-10-19 10:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 netfs 구성 요소에서 mmap을 통해 파일 끝(EOF) 이후에 남겨진 오래된 페이지 캐시 데이터가 일반적인 쓰기 작업 시 제대로 삭제되지 않는 취약점이 발견되었습니다. 이로 인해 파일 확장 시 이전의 더티 데이터가 남아 데이터 무결성이 훼손될 수 있으며, 이를 해결하기 위해 파일 확장 시 EOF 이후의 folio를 0으로 초기화하는 패치가 적용되었습니다.

💡 쉬운 설명

파일의 크기를 늘리는 과정에서 이전에 사용했던 찌꺼기 데이터가 지워지지 않고 남아있어 잘못된 정보가 노출될 수 있는 문제입니다. 보안 패치를 통해 파일 확장 시 남은 공간을 깨끗하게 비우도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: netfs: clear post-EOF pagecache when extending a file via write Fix netfs to erase the contents of a hole created after the EOF by an ordinary write if dirty data has been previously left there by writes through an mmapped region. Neither the buffered nor the unbuffered/DIO write path clears that stale pagecache. Zero the tail of the folio straddling the EOF before an extending write. That is the only folio that can hold data written past the EOF through an mmap, as pages wholly beyond the EOF can't be faulted in. The folio is zeroed rather than dropped so a concurrent extending write can't lose data. Both write paths downgrade the i_rwsem to shared, so extending writes can run concurrently and the i_size read by the caller may be stale by the time the folio is locked. Re-read i_size under the folio lock and clamp the zeroed range up to it, so a racing write that already put data into the folio isn't clobbered. Wait for any writeback on the folio to finish before zeroing it so that the pagecache isn't modified while it may still be read by the transport during transmission. Honour IOCB_NOWAIT by returning -EAGAIN rather than blocking on the folio lock, on writeback, or in folio_mkclean()'s rmap walk when the folio is mapped. truncate_pagecache() can't be used here: it must be called with the i_rwsem held exclusively, but these write paths only hold it shared, and it would block unconditionally, breaking IOCB_NOWAIT. Callers that hold i_rwsem exclusively for the whole resize (truncate, setattr, fallocate, clone) exclude any genuine concurrent buffered writer, so staleness can instead be decided from the folio's dirty state, as pagecache_isize_extended() already does for filesystems that serialise writes against truncate/setattr via a single i_rwsem. Export netfs_clear_stale_post_isize() helper to handle such case. The helper is required by the CIFS client to fix generic/363.

📍 영향받는 시스템

Linux kernel (netfs 구성 요소를 사용하는 시스템)

⚔️ 공격 벡터

mmap을 통해 파일 끝 너머에 데이터를 남긴 후, 일반적인 쓰기 방식으로 파일을 확장하여 잔류 데이터를 읽는 방식

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel