🇰🇷 한글 설명
Linux 커널의 ksmbd 모듈에서 SMB3 멀티채널 세션 종료 시 세션 객체가 안전하게 해제되지 않는 취약점이 발견되었습니다. 세션 로그오프 시 모든 채널이 종료될 때까지 대기하지 않고 공유 세션 객체를 해제할 경우 문제가 발생할 수 있습니다. 이를 해결하기 위해 세션 해제 과정을 직렬화하고 원자적 상태 전환을 사용하여 세션 종료 프로세스를 개선했습니다.
💡 쉬운 설명
컴퓨터 간 파일을 공유할 때 사용하는 기능에서, 사용자가 로그아웃을 해도 연결이 완전히 끊기지 않고 남아있어 오류가 생길 수 있는 문제입니다. 이 취약점은 연결이 완전히 정리되지 않은 상태에서 데이터가 삭제되거나 충돌이 발생하는 상황을 유발할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: safely drain sessions during logoff
SMB3 multichannel allows requests for one session to run on multiple
connections. Wait for all channels bound to a session before freeing
shared session objects.
A deferred byte-range lock remains counted as a running request and only
wakes when its file closes. Wake blocked locks during the drain without
unpublishing or modifying their file objects. Synchronous CANCEL requests
must invoke their cancellation callback to wake pending operations, while
CHANGE_NOTIFY completion remains specific to the asynchronous path.
Serialize session teardown with channel registration and previous-session
cleanup, and use atomic work-state transitions so LOGOFF, CANCEL, and
connection teardown invoke cancellation callbacks only once.
📍 영향받는 시스템
Linux kernel (ksmbd module using SMB3 multichannel)
⚔️ 공격 벡터
SMB3 멀티채널을 사용하는 환경에서 비정상적인 세션 종료 요청을 통해 세션 객체 관리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ksmbd의 세션 해제 로직 수정 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.