🔍 CVE-2026-64578

8.2
CVSS Score
HIGH
2026-08-05
2026-08-19 17:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ksmbd 모듈에서 SMB2 복합 요청의 크기를 검증하기 전에 StructureSize2 필드를 읽는 취약점이 발견되었습니다. 공격자가 마지막 요소의 크기를 정밀하게 조작하여 64바이트 경계를 넘어서는 읽기 작업을 수행하게 함으로써 slab-out-of-bounds read를 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터가 데이터를 읽을 때 정해진 범위를 살짝 벗어나서 읽게 되는 오류가 있습니다. 나쁜 의도를 가진 사용자가 특수하게 만든 요청을 보내면 시스템의 메모리 정보를 몰래 훔쳐볼 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ksmbd: validate compound request size before reading StructureSize2 When ksmbd validates a compound (chained) SMB2 request, ksmbd_smb2_check_message() reads pdu->StructureSize2 without first checking that the compound element is large enough to contain it. StructureSize2 is a 2-byte field at offset 64 (__SMB2_HEADER_STRUCTURE_SIZE) from the start of each element. The compound-walking logic only guarantees that a full 64-byte SMB2 header is present for the trailing element: when NextCommand is 0, len is reduced to the number of bytes remaining after next_smb2_rcv_hdr_off. A remote client can craft a compound request whose last element has exactly 64 bytes, so the 2-byte StructureSize2 read at offset 64 extends one byte past the receive buffer, producing a slab-out-of-bounds read. BUG: KASAN: slab-out-of-bounds in ksmbd_smb2_check_message (fs/smb/server/smb2misc.c:402) Read of size 2 at addr ffff888012ae31ac by task kworker/0:1/14 The buggy address is located 172 bytes inside of allocated 173-byte region Workqueue: ksmbd-io handle_ksmbd_work Call Trace: ... kasan_report (mm/kasan/report.c:595) ksmbd_smb2_check_message (fs/smb/server/smb2misc.c:402) handle_ksmbd_work (fs/smb/server/server.c:119) process_one_work (kernel/workqueue.c:3314) worker_thread (kernel/workqueue.c:3397) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) Reject any compound element that is too small to hold StructureSize2 before dereferencing it.

📍 영향받는 시스템

ksmbd 모듈을 사용하는 Linux 커널 버전

⚔️ 공격 벡터

조작된 SMB2 복합 요청(Compound Request)을 전송하여 메모리 경계 밖의 데이터를 읽도록 유도

🛡️ 대응 방법

StructureSize2를 참조하기 전에 복합 요소의 크기가 충분한지 검증하도록 커널을 업데이트하십시오.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 취약점이 패치된 최신 버전인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel