🔍 CVE-2026-97563

0.0
CVSS Score
UNKNOWN
2026-09-25
2026-10-19 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 SMB1 클라이언트 구현 중 CIFSSMBRead() 함수에서 DataOffset 값에 대한 경계 검사가 누락된 취약점입니다. 악의적인 SMB1 서버가 조작된 DataOffset을 전송할 경우 커널 힙 메모리가 유출되거나 시스템이 중단될 수 있습니다.

💡 쉬운 설명

컴퓨터가 서버로부터 데이터를 가져올 때, 데이터가 어디에 있는지 알려주는 위치 정보가 잘못되었는지 확인하지 않는 문제입니다. 이를 통해 해커는 컴퓨터 내부의 비밀 정보를 훔쳐보거나 시스템을 멈추게 할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: smb: client: reject out-of-bounds DataOffset in CIFSSMBRead() The SMB1 synchronous read helper CIFSSMBRead() validates the server's DataLength against CIFSMaxBufSize and the caller's count, but never validates DataOffset. The copy source is formed as &pSMBr->hdr.Protocol + le16_to_cpu(pSMBr->DataOffset) and memcpy()'d for DataLength bytes with no check that the [DataOffset, DataOffset + DataLength) range lies within the response actually received from the server. A malicious or compromised SMB1 server can return a response carrying an in-range DataLength and a large DataOffset, driving the source pointer past the end of the response buffer. The memcpy() then copies adjacent kernel heap into the caller's read buffer (information disclosure), or reads unmapped memory and oopses (denial of service). SMB1 is not negotiated by default; reaching this code requires an explicit vers=1.0 mount. Both DataOffset and the received response length recorded in rsp_iov.iov_len are relative to the start of the SMB header, so reject the response unless DataOffset + DataLength fits within that length, using overflow-safe arithmetic, before forming the source pointer. The response length has been validated by the previous patch, so the DataOffset and DataLength fields can be read safely here. While here, make data_length unsigned. It holds a length derived from unsigned on-the-wire fields and is only ever compared against unsigned quantities; print it with %u accordingly, and add __func__ to the cifs_dbg() calls in this function.

📍 영향받는 시스템

SMB1(vers=1.0) 프로토콜을 명시적으로 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

조작된 DataOffset 값을 포함한 SMB1 응답을 보내는 악의적인 또는 침해된 SMB 서버를 통한 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하고, 가능한 경우 SMB1 사용을 중단하십시오.

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 공지(CVE-2026-97563)와 대조하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel