CVE-2026-31718 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 18.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ksmbd: durable scavenger를 통한 __ksmbd_close_fd() 내 use-after-free 수정

내구성 있는 파일 핸들이 세션 연결 끊김(SMB2_LOGOFF 없이 TCP 종료)을 견디면, session_fd_check()는 나중에 재연결할 수 있도록 핸들을 보존하기 위해 fp->conn = NULL을 설정합니다. 그러나 fp->lock_list의 바이트 범위 잠금(byte-range locks)은 정리되지 않았습니다.

나중에 내구성 스캐빈저(durable scavenger) 스레드가 시간 초과되어 __ksmbd_close_fd(NULL, fp)를 호출하면, 잠금 정리 루프에서 다음 작업을 수행했습니다:

spin_lock(&fp->conn->llist_lock);

이로 인해 fp->conn이 NULL이었고 원래 연결 객체가 이미 ksmbd_tcp_disconnect()에 의해 해제되었기 때문에 slab use-after-free가 발생했습니다.

근본 원인은 비대칭적인 정리(asymmetric cleanup)입니다: 잠금 항목(smb_lock->clist)이 해제된 conn->lock_list에 매달린 상태로 남아있는 동안 fp->conn은 NULL로 설정되었습니다.

이 문제를 적절히 해결하려면 smb_lock->clist의 수명을 다음 세 가지 경로에서 처리해야 합니다: - 목록이 비어 있고 fp->conn이 NULL인 경우 clist 삭제를 안전하게 건너뜁니다. - session_fd_check()에서 이전 연결의 lock_list에서 잠금을 제거합니다. - ksmbd_reopen_durable_fd()에서 새 연결의 lock_list에 잠금을 다시 추가합니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 03. 09.

모더레이션

수락

항목

VDB-360593

EPSS

0.00066

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!