🇰🇷 한글 설명
ksmbd의 멀티채널 SMB2_SESSION_SETUP 요청 바인딩 실패 시 conn->binding 플래그가 초기화되지 않아 연결이 binding 상태에 머물러 있는 문제입니다. 이로 인해 세션 조회 시 글로벌 세션 테이블로 폴백되어 세션 격리가 우회될 수 있습니다.
💡 쉬운 설명
Linux SMB 파일 공유 서버에서 멀티채널 연결 설정 중 오류 발생 후 연결 상태 정리가 제대로 되지 않는 문제입니다. 이를 악용하면 다른 사용자의 세션에 접근할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: unset conn->binding on failed binding request
When a multichannel SMB2_SESSION_SETUP request with
SMB2_SESSION_REQ_FLAG_BINDING fails ksmbd sets conn->binding = true
but never clears it on the error path. This leaves the connection in
a binding state where all subsequent ksmbd_session_lookup_all() calls
fall back to the global sessions table. This fix it by clearing
conn->binding = false in the error path.
📍 영향받는 시스템
Linux kernel ksmbd 모듈이 탑재된 시스템 (SMB 공유를 제공하는 Linux 서버)
⚔️ 공격 벡터
멀티채널 SMB2_SESSION_SETUP 요청을 의도적으로 실패시켜 바인딩 상태 유지 후 세션 테이블 조작
🛡️ 대응 방법
Linux 커널 업데이트로 ksmbd 모듈 패치 적용
🔧 검증 코드
ksmbd 모듈이 로드되어 있으면 취약한 시스템, 로드되지 않았으면 안전
lsmod | grep ksmbd && echo 'vulnerable' || echo 'safe'