🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트 구성 요소인 smb2_query_info_compound 함수에서 Use-After-Free(UAF) 취약점이 발견되었습니다. 재시도 과정에서 이전에 할당된 cfid가 초기화되지 않아, 이미 해제된 메모리 포인터에 접근함으로써 참조 횟수 언더플로우 및 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 네트워크 공유 폴더 정보를 가져오려다 실패해서 다시 시도할 때, 이미 사용이 끝난 메모리 주소를 다시 사용하려고 시도하는 문제입니다. 이로 인해 시스템이 멈추거나 보안 공격에 취약해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix potential cfid UAF in smb2_query_info_compound
When smb2_query_info_compound() retries, a previously allocated cfid may
have been freed in the first attempt.
Because cfid wasn't reset on replay, later cleanup could act on a stale
pointer, leading to a potential use-after-free.
Reinitialize cfid to NULL under the replay label.
Example trace (trimmed):
refcount_t: underflow; use-after-free.
WARNING: CPU: 1 PID: 11224 at ../lib/refcount.c:28 refcount_warn_saturate+0x9c/0x110
[...]
RIP: 0010:refcount_warn_saturate+0x9c/0x110
[...]
Call Trace:
<TASK>
smb2_query_info_compound+0x29c/0x5c0 [cifs f90b72658819bd21c94769b6a652029a07a7172f]
? step_into+0x10d/0x690
? __legitimize_path+0x28/0x60
smb2_queryfs+0x6a/0xf0 [cifs f90b72658819bd21c94769b6a652029a07a7172f]
smb311_queryfs+0x12d/0x140 [cifs f90b72658819bd21c94769b6a652029a07a7172f]
? kmem_cache_alloc+0x18a/0x340
? getname_flags+0x46/0x1e0
cifs_statfs+0x9f/0x2b0 [cifs f90b72658819bd21c94769b6a652029a07a7172f]
statfs_by_dentry+0x67/0x90
vfs_statfs+0x16/0xd0
user_statfs+0x54/0xa0
__do_sys_statfs+0x20/0x50
do_syscall_64+0x58/0x80
📍 영향받는 시스템
Linux kernel (SMB client/CIFS module)
⚔️ 공격 벡터
악의적으로 조작된 SMB 응답을 보내 클라이언트의 재시도 로직을 유도하여 메모리 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 cfid 재초기화 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인