🇰🇷 한글 설명
Linux 커널의 ksmbd 모듈에서 __close_file_table_ids() 함수 호출 시 Use-After-Free 취약점이 발견되었습니다. 파일이 논리적으로 닫힌 후에도 다른 세션이 참조를 유지할 수 있어, 잘못된 참조 해제 시 메모리 객체가 해제된 후에도 포인터가 남아있어 발생하는 문제입니다.
💡 쉬운 설명
파일을 사용 중인 다른 사람이 있는데 파일이 먼저 삭제되어 버리는 오류입니다. 이로 인해 시스템이 이미 사라진 메모리 주소를 다시 읽으려다 오류가 발생하거나 해킹에 이용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: fix use-after-free in __close_file_table_ids()
A ksmbd_file can remain alive after logical close while another session
holds a temporary reference obtained through ksmbd_lookup_fd_inode().
ksmbd_close_fd() currently marks the file closed and drops the idr-owned
reference, but leaves the pointer published in the closing session's idr
until the final reference is dropped.
If the foreign holder performs the final ksmbd_fd_put(), __put_fd_final()
supplies the foreign session's file table to __ksmbd_close_fd(). The object
is then freed without being removed from its owner's idr, and the owner
session later dereferences the stale pointer during file-table teardown.
Remove the volatile id from the owner's idr while ksmbd_close_fd() still
holds that table's lock, and clear volatile_id before dropping
the idr-owned reference. A later foreign final put then only performs
physical destruction and cannot remove the object from the wrong table.
📍 영향받는 시스템
ksmbd 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
특수하게 조작된 SMB 세션을 통해 파일 참조를 유지하여 메모리 해제 후 재참조 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 ksmbd 취약점이 해결된 최신 패치 버전인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux