CVE-2026-98763 in Linux
요약
\~에 의해 VulDB • 2026. 10. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb: core: 비-ep0 제어 엔드포인트에 대해 ep_in과 ep_out을 모두 지웁니다
usb_enable_endpoint() 함수에서는, usb_endpoint_xfer_control(&ep->desc)가 참인 0이 아닌 제어 엔드포인트의 경우 dev->ep_in[epnum]와 dev->ep_out[epnum]에 동일한 struct usb_host_endpoint 포인터를 할당합니다.
그러나 reset_hardware 플래그가 설정된 상태일 때, usb_disable_endpoint() 함수는 epaddr의 방향 비트(direction bit)에 따라 dev->ep_out[epnum] 또는 dev->ep_in[epnum] 중 하나만 지웁니다. 이로 인해 반대 방향의 배열 슬롯이 비활성화되거나 해제(freed)된 엔드포인트를 가리킨 채로 남게 됩니다.
reset_hardware가 설정된 상태에서 비-ep0 제어 엔드포인트를 비활성화할 때 dev->ep_out[epnum]와 dev->ep_in[epnum] 모두를 지우고, 해당 함수의 kerneldoc 주석을 이에 맞게 업데이트합니다.
QEMU 환경에서 dummy_hcd 및 raw-gadget을 사용하여 Linux 7.3.0-rc3에 대해 테스트했으며, 비-zero 제어 엔드포인트(bEndpointAddress 0x01, bmAttributes USB_ENDPOINT_XFER_CONTROL)를 가진 USB 장치를 열거할 때 인터페이스가 비활성화되면 dev->ep_in[1]과 dev->ep_out[1]이 모두 지워지는 것을 확인했습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.