CVE-2026-80861 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 04.

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

usb: xhci: 컨트롤러에 접근할 수 없는 경우 설정을 중단함

xhci_gen_setup()는 첫 번째 레지스터에서 읽은 capability 길이를 사용하여 운영 레지스트리를 찾습니다.

xhci->op_regs = hcd->regs + HC_LENGTH(readl(&xhci->cap_regs->hc_capbase));

컨트롤러가 고장 났거나 버스에서 분리된 경우, 해당 read는 ~0를 반환하고 HC_LENGTH()는 이를 0xff로 절사하며 op_regs는 페이지 정렬된 MMIO 베이스보다 0xff 바이트 뒤쪽, 즉 비정렬(unaligned) 위치에 있게 됩니다. 그 다음 첫 번째 접근인 xhci_halt() -> xhci_handshake()에서 op_regs->status를 읽을 때 장치 메모리에 대한 비정렬 readl()이 발생합니다. arm64는 비정렬된 장치 액세스에 대해 예외(faults)를 발생시키므로, xhci_handshake()가 모든 비트가 1인 값을 포착하고 -ENODEV를 반환하는 대신 설정 과정에서 oops(커널 패닉 등)가 발생합니다:

xhci-pci-renesas 0005:08:00.0: D3cold에서 D0로 전원 상태를 변경할 수 없음, 장치에 접근 불가 xhci-pci-renesas 0005:08:00.0: xHCI 호스트 컨트롤러 xhci-pci-renesas 0005:08:00.0: 새 USB 버스 등록됨, 버스 번호 1 할당됨 가상 주소 ffff80030a770103에서 커널 페이지 요청 처리 불가 ESR = 0x0000000096000021 FSC = 0x21: 정렬 오류(alignment fault) 내부 오류: Oops: 0x0000000096000021 [#1] SMP
pc : xhci_halt [xhci_hcd]
호출 추적(Call trace): xhci_halt xhci_gen_setup xhci_pci_setup usb_add_hcd usb_hcd_pci_probe xhci_pci_common_probe xhci_pci_renesas_probe

이 문제는 전원이 올라가지 않아("D3cold에서 D0로 전원 상태를 변경할 수 없음, 장치에 접근 불가") 실패했지만 여전히 HCD probe 경로에 도달한 Renesas uPD720201에서 발생했습니다.

capability 레지스터를 한 번만 읽고, 모든 비트가 1인 값(xhci_handshake() 및 xhci_reset()이 이미 테스트하는 값)으로 읽혀지면 op_regs가 유도되기 전에 -ENODEV로 설정을 중단합니다. 이를 한 번만 읽음으로써 동시 핫 제거(hot-removal) 시 변경될 수 있는 레지스터를 다시 읽는 것도 방지됩니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-398922

EPSS

0.00155

출처

Do you know our Splunk app?

Download it now for free!