🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트에서 passthrough ioctl 경계 검사 시 정수 오버플로가 발생할 수 있는 취약점입니다. 악의적인 서버가 조작된 오프셋 값을 보내 경계 검사를 우회하면, 커널이 응답 버퍼 범위를 벗어난 메모리를 사용자 공간으로 복사하여 정보 유출을 일으킬 수 있습니다.
💡 쉬운 설명
나쁜 서버가 컴퓨터에 가짜 정보를 보낼 때, 숫자를 아주 크게 만들어 계산 오류를 일으키는 방식입니다. 이 오류를 이용하면 서버가 컴퓨터의 허락되지 않은 중요한 메모리 내용을 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix overflow in passthrough ioctl bounds check
smb2_ioctl_query_info() validates the PASSTHRU_FSCTL response payload
before copying it to userspace.
The payload offset and length both come from 32-bit fields. The bounds
check currently adds OutputOffset and qi.input_buffer_length directly, so
the addition can wrap in 32-bit arithmetic before the result is compared
against the response buffer length.
A malicious server can use a large OutputOffset and a small OutputCount
to make the wrapped sum pass the bounds check. The later copy_to_user()
then reads from io_rsp + OutputOffset, outside the response buffer.
Use size_add() for the offset plus length check so overflow is treated as
out of bounds.
📍 영향받는 시스템
Linux kernel (SMB client component)
⚔️ 공격 벡터
악의적인 SMB 서버가 조작된 PASSTHRU_FSCTL 응답 페이로드를 클라이언트에 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 size_add() 기반의 경계 검사 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 배포판 보안 공지를 통해 확인