CVE-2026-64523 in Linux
요약
\~에 의해 VulDB • 2026. 07. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/handshake: 제출 시 장기 수명 파일 참조 확보
handshake_nl_accept_doit()는 handshake_req_next()와 후속 FD_PREPARE() 및 get_file() 사이의 시간 간격 동안 req->hr_sk->sk_socket을 백업하는 파일 포인터가 유지되도록 해야 합니다. 제출 측의 sock_hold()은 이를 보장하지 않습니다. sk_refcnt는 struct sock이 살아있도록 유지하지만, struct socket은 sock->file에 의해 소유됩니다: 소비자가 마지막 파일 참조를 fputs하면(방출하면), sock_release()는 어떤 sock_hold에도 관계없이 소켓을 종료시킵니다.
struct handshake_req에 hr_file 포인터를 추가하고 handshake_req_submit() 동안 sock->file에 대한 명시적 참조를 획득합니다. handshake_complete() 및 handshake_req_cancel()은 완료 비트 승자 경로에서 해당 참조를 해제합니다.
제출 오류 경로에서도 파일 참조를 해제해야 하지만, rhashtable 삽입 후 동시 handshake_req_cancel()이 요청을 발견하고 오류 경로와 경합할 수 있습니다. 오류 경로 정리(sk_destruct 복원, fput 및 요청 파괴)는 test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED)로 게이트 처리하며, 이는 handshake_complete()와 handshake_req_cancel()이 이미 사용하는 것과 동일한 직렬화 핸드셰이크입니다. 취소가 소유권을 이미 주장한 경우, 제출 오류 경로는 요청에 손대지 않고 반환하며, 소켓 종료에서 최종 파괴를 처리합니다.
수락 측의 역참조는 아직 재표적되지 않았습니다; 해당 변경 사항은 다음 패치에서 이루어집니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.