🇰🇷 한글 설명
Linux 커널의 ksmbd 모듈에서 oplock/lease break 알림 처리 중 NULL 포인터 역참조 취약점이 발견되었습니다. SMB2 로그오프가 동시에 발생할 경우 opinfo->conn이 NULL이 될 수 있으며, 이로 인해 원격에서 커널 패닉(oops)을 유발할 수 있습니다.
💡 쉬운 설명
서버가 파일 사용 권한을 정리하는 과정에서 연결이 끊긴 사용자를 제대로 확인하지 않아 발생하는 오류입니다. 공격자가 특수한 방식으로 연결을 끊으면 서버 시스템이 갑자기 멈추거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers
smb2_oplock_break_noti() and smb2_lease_break_noti() read opinfo->conn
into a local with neither READ_ONCE() nor a NULL check. Both run from
oplock_break() after opinfo_get_list() has dropped ci->m_lock, so a
concurrent SMB2 LOGOFF (session_fd_check()) can set op->conn = NULL
under ci->m_lock within that window. ksmbd_conn_r_count_inc(conn) then
writes through NULL at offset 0xc4 -- a remotely triggerable oops.
Guard both reads the way compare_guid_key() already does: read
opinfo->conn with READ_ONCE() and return early if it is NULL, before
allocating the work struct so nothing leaks. A NULL conn means the
client is gone and the break is moot, so return 0; oplock_break() treats
that as success and runs the normal teardown.
📍 영향받는 시스템
Linux kernel (ksmbd module 사용 환경)
⚔️ 공격 벡터
원격에서 SMB2 프로토콜을 통해 특정 타이밍에 로그오프를 유도하여 커널 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인