🇰🇷 한글 설명
Linux 커널의 ksmbd 서버에서 ksmbd_session_register() 함수 호출 시 세션 누수가 발생하는 취약점이 해결되었습니다. xa_store() 작업이 실패할 경우 세션을 테이블에서 제거하고 참조를 해제하지 않아 메모리 누수가 발생할 수 있었습니다.
💡 쉬운 설명
리눅스 서버의 파일 공유 기능에서 세션 정보가 제대로 삭제되지 않고 메모리에 계속 쌓이는 문제가 있었습니다. 이로 인해 시스템의 메모리가 점진적으로 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb/server: fix session leak in ksmbd_session_register()
See the procedure below:
smb2_sess_setup
ksmbd_smb2_session_create
__session_create
atomic_set(&sess->refcnt, 2)
hash_add(sessions_table, &sess->hlist, sess->id)
ksmbd_session_register
xa_store(&conn->sessions, sess->id, sess) // fail
ksmbd_user_session_put
atomic_dec(&sess->refcnt) // refcnt is 1, session is not freed
Remove the session from sessions_table and drop its table reference if
xa_store() fails.
📍 영향받는 시스템
ksmbd 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
특수하게 조작된 SMB2 세션 설정 요청을 통해 세션 생성 실패를 유도하여 메모리 누수 유발
🛡️ 대응 방법
ksmbd 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인