🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트 모듈에서 parse_posix_sids() 함수가 서버가 전달한 out_len 값을 실제 수신한 iov 길이와 비교하지 않아 발생하는 취약점입니다. 악의적인 서버가 과도한 out_len을 보내면 커널 메모리 범위를 벗어난 읽기가 발생할 수 있습니다. 패치는 계산된 sidsbuf_end가 iov 경계를 넘거나 포인터 래핑을 일으키는 응답을 거부하도록 수정합니다.
💡 쉬운 설명
리눅스 커널이 SMB 파일 서버의 응답을 처리할 때 데이터 길이를 제대로 검사하지 않습니다. 악의적인 서버가 이 허점을 이용해 컴퓨터 메모리의 다른 영역 정보를 읽어올 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix missing iov bounds check in parse_posix_sids()
In parse_posix_sids(), sidsbuf_end is calculated using the server-supplied
out_len without being validated against the actual length of the received
iov (iov_len).
If a server provides an inflated out_len, sidsbuf_end will point past the
end of the iov. This defeats the bounds guards in posix_info_sid_size(),
allowing out-of-bounds reads into adjacent kernel memory.
Fix this by rejecting responses where the calculated sidsbuf_end would
exceed the received iov boundaries or cause pointer wraparound.
📍 영향받는 시스템
패치 이전의 Linux 커널 (CIFS/SMB 클라이언트 기능을 사용하는 시스템)
⚔️ 공격 벡터
악의적인 SMB 서버가 조작된 out_len 값을 담은 응답을 보내 클라이언트 커널의 범위 밖 메모리를 읽도록 유도
🛡️ 대응 방법
커널을 해당 CVE 수정이 포함된 최신 안정 버전으로 업데이트하거나 배포판 보안 패치를 적용
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 changelog와 대조하여 CVE-2026-98405 수정 포함 여부를 확인하며, 해당 패치 이전 버전이면 취약한 것으로 판단