CVE-2026-64535 in Linux
요약
\~에 의해 VulDB • 2026. 07. 27.
리눅스 커널에서 다음 취약점이 해결되었습니다:
nvmet-tcp: ddgst 불일치 시 잠재적 UAF(Use-After-Free) 수정
Shivam Kumar가 취약점 테스트를 통해 발견한 내용입니다: NVMe/TCP 연결에서 데이터 다이제스트가 활성화되어 있고 R2T 기반 데이터 전송 중 최종이 아닌 H2C_DATA PDU에서 다이제스트 불일치가 발생하면, nvmet_tcp_try_recv_ddgst() 내의 다이제스트 오류 처리기가 nvmet_req_uninit()을 호출합니다. 이 함수는 제출 큐(submission queue)에 대해 percpu_ref_put()를 수행하지만 명령어를 완료된 것으로 표시하지 않습니다. 즉, cqe->status를 설정하지 않고, rbytes_done을 수정하지 않으며, 어떤 플래그도 지우지 않습니다. 이후 치명적 오류가 발생하여 큐 teardown이 트리거되면, nvmet_tcp_uninit_data_in_cmds()는 모든 명령어를 순회하며 각 항목에 대해 nvmet_tcp_need_data_in()을 확인합니다. 이미 초기화가 해제된 명령어가 여전히 데이터 필요 상태인 것으로 나타납니다(rbytes_done < transfer_len이고 cqe->status == 0이므로). 이로 인해 동일한 명령어에 대해 두 번째로 nvmet_req_uninit()가 호출되어, 단일 percpu_ref_get에 대한 이중 percpu_ref_put(double percpu_ref_put) 상황이 발생합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.