🇰🇷 한글 설명
Linux 커널의 ksmbd 모듈에서 발생하는 취약점으로, 동일한 파일 핸들에 대해 여러 개의 QUERY_DIRECTORY 요청이 동시에 발생할 경우 스택 메모리 사용 후 해제(Use-After-Free) 문제가 발생합니다. 이로 인해 메모리 오염이나 시스템 불안정성이 초래될 수 있습니다.
💡 쉬운 설명
파일 목록을 불러오는 과정에서 여러 요청이 동시에 들어오면 메모리 관리 오류가 발생하여 시스템이 고장 날 수 있는 문제입니다. 이를 방지하기 위해 한 번에 하나의 요청만 처리하도록 순서를 정해주는 기능이 필요합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: serialize QUERY_DIRECTORY requests per file
smb2_query_dir() stores a pointer to its stack-allocated private data in
the ksmbd_file readdir_data. Concurrent QUERY_DIRECTORY requests using the
same file handle can overwrite this pointer while an iterate_dir() callback
is still using it, resulting in a stack use-after-free.
Add a per-file mutex and hold it while accessing the shared directory
enumeration state. The lock covers scan restart, dot entry state,
readdir_data setup and iteration, and response construction. This prevents
another request from replacing readdir_data.private before the current
request has finished using it and also serializes the shared file position.
📍 영향받는 시스템
ksmbd 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
동일한 파일 핸들을 사용하여 동시에 여러 개의 디렉토리 조회(QUERY_DIRECTORY) 요청을 전송
🛡️ 대응 방법
ksmbd 모듈에 파일별 뮤텍스(Mutex)를 적용하여 디렉토리 열거 과정을 직렬화하도록 커널 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 보안 패치가 적용된 최신 버전인지 확인합니다.