🇰🇷 한글 설명
Linux 커널의 nvmet: pci-epf 구성 요소에서 PCI 주소 공간 매핑 실패 시 완료 큐(CQ) 참조를 적절히 해제하지 않는 취약점이 발견되었습니다. 이로 인해 원격 PCI 호스트가 특정 명령을 반복적으로 시도할 경우 컨트롤러 참조와 CQ가 누수될 수 있습니다.
💡 쉬운 설명
컴퓨터의 부품을 연결하는 과정에서 오류가 발생했을 때, 사용했던 메모리 자원을 제대로 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이 현상이 반복되면 시스템 자원이 고갈되어 컴퓨터가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nvmet: pci-epf: put CQ ref on create_cq mapping failure
nvmet_pci_epf_create_cq() calls nvmet_cq_create(), which takes a
reference on the controller and installs the completion queue. If the
subsequent PCI address-space mapping fails or returns a too-small partial
mapping, the function jumps to err_internal / err_unmap_queue without
calling nvmet_cq_put(). The matching put in nvmet_pci_epf_delete_cq() is
gated on NVMET_PCI_EPF_Q_LIVE, which is only set after the mapping
succeeds, so teardown never releases these references. A remote PCI host
that drives Create IO CQ commands with a failing PRP1/pci_addr therefore
leaks the CQ and a controller reference on each attempt.
Drop the CQ reference on the mapping-failure paths. The err_internal and
err_unmap_queue labels are only reachable after nvmet_cq_create() has
succeeded, so this pairs the create/put correctly.
📍 영향받는 시스템
Linux kernel (nvmet: pci-epf 모듈 사용 환경)
⚔️ 공격 벡터
원격 PCI 호스트를 통한 Create IO CQ 명령 반복 전송 (자원 누수 유도)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.