🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트에서 SMB2.1 서명 마운트 시 발생하는 Use-After-Free 취약점입니다. 특정 레이스 컨디션 상황에서 세션 인증 키가 해제된 후 다시 참조되어 시스템 불안정이나 보안 위협을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터가 네트워크 공유 폴더를 연결하는 과정에서, 이미 삭제된 암호 키를 다시 사용하려고 시도할 때 발생하는 오류입니다. 이로 인해 시스템이 멈추거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix use-after-free of signing key
Customers have reported use-after-free in @ses->auth_key.response with
SMB2.1 + sign mounts which occurs due to following race:
task A task B
cifs_mount()
dfs_mount_share()
get_session()
cifs_mount_get_session() cifs_send_recv()
cifs_get_smb_ses() compound_send_recv()
cifs_setup_session() smb2_setup_request()
kfree_sensitive() smb2_calc_signature()
crypto_shash_setkey() *UAF*
Fix this by ensuring that we have a valid @ses->auth_key.response by
checking whether @ses->ses_status is SES_GOOD or SES_EXITING with
@ses->ses_lock held. After commit 24a9799aa8ef ("smb: client: fix UAF
in smb2_reconnect_server()"), we made sure to call ->logoff() only
when @ses was known to be good (e.g. valid ->auth_key.response), so
it's safe to access signing key when @ses->ses_status == SES_EXITING.
📍 영향받는 시스템
SMB2.1 서명 기능을 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
특정 타이밍에 SMB 연결 및 해제를 반복하는 레이스 컨디션 공격
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인