🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트에서 cifs_check_trans2() 함수 내의 Use-After-Free(UAF) 및 버퍼 누수 취약점이 발견되었습니다. 잘못된 형식의 secondary TRANSACT2 응답이 수신될 경우, 기존 버퍼가 적절히 해제되지 않거나 dangling pointer가 남아 시스템 안정성을 해칠 수 있습니다.
💡 쉬운 설명
네트워크를 통해 들어오는 잘못된 데이터 패킷 때문에 컴퓨터 메모리가 꼬여서 발생하는 문제입니다. 이로 인해 해커가 시스템 권한을 탈취하거나 컴퓨터를 강제로 종료시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix UAF and buffer leak in cifs_check_trans2() for malformed secondary T2
When a valid primary TRANSACT2 response has been received (mid->resp_buf
set, mid->multiRsp true) and a subsequent secondary response causes
cifs_check_trans2() to return false -- either because the SMB header is
invalid (malformed != 0) or because check2ndT2() rejects the PDU --
handle_mid() overwrites mid->resp_buf with the new buffer (leaking the
primary buffer) and, because mid->multiRsp is set, skips the
server->smallbuf/bigbuf NULL-out. When the user thread frees
mid->resp_buf, server->smallbuf or server->bigbuf is left dangling; the
demux thread reuses it for the next packet, resulting in a use-after-free.
Combine both early-exit conditions and, when mid->multiRsp is already
set, abort the pending transaction inline: set multiEnd, call
dequeue_mid() with malformed=true, and return true so handle_mid() exits
without touching mid->resp_buf or the server buffer pointers.
📍 영향받는 시스템
Linux Kernel (SMB/CIFS client module 포함 버전)
⚔️ 공격 벡터
조작된 SMB(Server Message Block) 프로토콜 응답 패킷을 전송하여 클라이언트 커널의 메모리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인