🔍 CVE-2026-64534

9.8
CVSS Score
CRITICAL
2026-07-27
2026-10-19 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 nvmet-tcp 구성 요소에서 데이터 다이제스트 불일치 발생 시 초기화 실패 여부를 확인하지 않고 자원을 해제하여 발생하는 취약점입니다. 이로 인해 참조 카운트 언더플로우가 발생하며, 결과적으로 Use-After-Free 진단 및 워크큐 데드락(Deadlock) 상태에 빠질 수 있습니다.

💡 쉬운 설명

네트워크를 통해 데이터를 주고받는 과정에서 오류가 발생했을 때, 시스템이 이미 해제된 메모리를 다시 해제하려고 시도하면서 문제가 발생합니다. 이 오류가 반복되면 시스템이 멈추거나 응답하지 않는 상태가 될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: check INIT_FAILED before nvmet_req_uninit in digest error path In nvmet_tcp_try_recv_ddgst(), when a data digest mismatch is detected, nvmet_req_uninit() is called unconditionally. However, if the command arrived via the nvmet_tcp_handle_req_failure() path, nvmet_req_init() had returned false and percpu_ref_tryget_live() was never executed. The unconditional percpu_ref_put() inside nvmet_req_uninit() then causes a refcount underflow, leading to a WARNING in percpu_ref_switch_to_atomic_rcu, a use-after-free diagnostic, and eventually a permanent workqueue deadlock. Check cmd->flags & NVMET_TCP_F_INIT_FAILED before calling nvmet_req_uninit(), matching the existing pattern in nvmet_tcp_execute_request().

📍 영향받는 시스템

Linux kernel (nvmet-tcp 모듈을 사용하는 시스템)

⚔️ 공격 벡터

조작된 데이터 다이제스트를 전송하여 nvmet-tcp 통신 과정에서 오류를 유도하는 네트워크 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 nvmet_req_uninit 호출 전 상태 체크 로직을 적용해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel