🇰🇷 한글 설명
Linux 커널의 SMB 클라이언트에서 cifs_sb_tlink() 함수가 실패할 경우 참조 카운트(refcount)가 해제되지 않고 누수되는 취약점이 발견되었습니다. 이로 인해 SMB 마운트를 해제할 때 사용 중인 아이노드(inode)로 인해 시스템 충돌(crash)이 발생할 수 있습니다.
💡 쉬운 설명
파일 공유 시스템을 연결했다가 끊을 때, 컴퓨터가 사용 중인 파일 정보를 제대로 정리하지 못해 시스템이 멈추거나 오류가 발생하는 문제입니다. 특정 설정에서 파일 연결 작업이 실패할 때 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: client: avoid leaking refcount when cifs_sb_tlink() fails
cifs_oplock_break() takes over the reference that
cifs_queue_oplock_break() acquired when it queued the work, and drops it
with _cifsFileInfo_put() once the break has been processed.
Only in setups with "-o multiuser", cifs_sb_tlink() may fail, at which
point cifs_oplock_break() returns without putting the file reference,
mirroring the reference leak we already fixed in the companion patch to
cifs_queue_oplock_break().
This would trigger a crash due to busy inodes on the next unmount:
BUG: Dentry ... still in use (1) [unmount of cifs cifs]
VFS: Busy inodes after unmount of cifs (cifs)
Drop the reference on that path as well. Doing so before the out label
mirrors the normal path, which also puts the reference before
cifs_done_oplock_break().
Found by Sashiko code review. The failure path was not exercised at
runtime.
📍 영향받는 시스템
Linux kernel (SMB/CIFS client module 사용 환경)
⚔️ 공격 벡터
로컬 시스템에서 특정 옵션(-o multiuser)을 사용하여 SMB 마운트 시도 중 오류를 유도하여 시스템 불안정 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.