🇰🇷 한글 설명
Linux 커널의 xHCI 드라이버에서 호스트 컨트롤러 오류(HCE) 발생 시 인터럽트가 적절히 해제되지 않아 인터럽트 폭풍(Interrupt Storm)이 발생하는 취약점입니다. 이로 인해 시스템 수준의 심각한 결함이 발생할 수 있으며, 오류 발생 시 컨트롤러를 중지하는 xhci_halt() 호출이 누락되어 발생합니다.
💡 쉬운 설명
USB 장치를 연결하거나 해제할 때 시스템 오류가 발생하면, 컴퓨터가 멈추지 않고 계속해서 오류 신호를 처리하느라 과부하가 걸리는 문제입니다. 이로 인해 기기가 버벅거리거나 시스템이 완전히 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: xhci: Prevent interrupt storm on host controller error (HCE)
The xHCI controller reports a Host Controller Error (HCE) in UAS Storage
Device plug/unplug scenarios on Android devices. HCE is checked in
xhci_irq() function and causes an interrupt storm (since the interrupt
isn’t cleared), leading to severe system-level faults.
When the xHC controller reports HCE in the interrupt handler, the driver
only logs a warning and assumes xHC activity will stop as stated in xHCI
specification. An interrupt storm does however continue on some hosts
even after HCE, and only ceases after manually disabling xHC interrupt
and stopping the controller by calling xhci_halt().
Add xhci_halt() to xhci_irq() function where STS_HCE status is checked,
mirroring the existing error handling pattern used for STS_FATAL errors.
This only fixes the interrupt storm. Proper HCE recovery requires resetting
and re-initializing the xHC.
📍 영향받는 시스템
Linux Kernel (xHCI driver 사용 시스템, 특히 Android 기기)
⚔️ 공격 벡터
물리적 또는 소프트웨어적으로 조작된 USB UAS 저장 장치의 연결/해제를 통한 인터럽트 폭풍 유발
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 xhci_irq() 내 HCE 처리 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인하십시오.