CVE-2026-98125 in Linux정보

요약

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

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

smb/client: insert/collapse range 중 stale 페이지 캐시 수정

`smb3_insert_range()` 및 `smb3_collapse_range()`는 영향을 받는 페이지 캐시를 무효화하기 위해 `truncate_pagecache_range()`를 사용합니다. 그러나 오프셋(`off`) 또는 이전 파일 끝(`old_eof`)이 페이지 정렬(page-aligned)되지 않은 경우, 경계 페이지(boundary pages)의 일부만 0으로 초기화되고 여전히 uptodate 상태로 남습니다. 그 결과 클라이언트는 insert/collapse range 작업 성공 후 stale 데이터를 반환할 수 있습니다.

예를 들어, 4K 페이지 크기의 경우:

page 0 page 1 page 2 0------4K 4K------8K 8K------12K ^ ^ off=2K old_eof=10K

페이지 1은 페이지 캐시에서 제거되지만, 경계 페이지는 부분적으로만 0으로 초기화됩니다. 서버 측에서 COPYCHUNK를 통해 데이터가 이동된 후에도 이러한 캐시된 페이지들은 여전히 stale 데이터를 반환할 수 있습니다.

이 문제는 CIFS 마운트 환경에서 다음 명령어로 재현할 수 있습니다:

bash -c ' FILE=/mnt/scratch/repro

# EOF가 페이지 정렬되지 않도록 6 KiB 파일을 사용함. dd if=/dev/urandom of=/tmp/src bs=1K count=6 status=none

# 예상 결과: 4 KiB의 hole 뒤에 원래 데이터가 옴. rm -f /tmp/expected truncate -s 4K /tmp/expected cat /tmp/src >> /tmp/expected

cp /tmp/src "$FILE"

# 서버 측에서 데이터를 이동하기 전에 페이지 캐시를 프리임(priming). cat "$FILE" > /dev/null

fallocate --insert-range -o 0 -l 4K "$FILE"

if cmp -s /tmp/expected "$FILE"; then echo "readback: OK" else echo "readback: STALE DATA" fi '

이 문제를 해결하기 위해, 서버 측에서 데이터를 이동하기 전에 `off`가 포함된 페이지의 시작부터 EOF까지의 영역에 대해 더티 데이터(dirty data)를 백쓰하고(page cache discard), 페이지 캐시를 비웁니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-409953

EPSS

0.00000

출처

Do you need the next level of professionalism?

Upgrade your account now!