🔍 CVE-2026-23009

5.5
CVSS Score
MEDIUM
2026-01-25
2026-11-05 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 xHCI 사이드밴드 엔드포인트 제거 함수(xhci_sideband_remove_endpoint)가 엔드포인트가 실행 중이며 유효한 전송 링이 있다고 잘못 가정하고 있었습니다. 이로 인해 suspend/resume, 재열거, 연결 해제 등의 상황에서 이미 해제되었거나 존재하지 않는 링을 참조하여 커널 크래시가 발생할 수 있었습니다. 링 접근을 제거하고 링 존재 여부와 엔드포인트 실행 상태를 확인하도록 수정되었습니다.

💡 쉬운 설명

USB 오디오 같은 장치의 연결 정보를 정리하는 과정에서 이미 사라진 데이터를 잘못 읽어 시스템이 멈출 수 있는 문제입니다. 수정으로 존재하지 않는 데이터를 건드리지 않도록 막았습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: xhci: sideband: don't dereference freed ring when removing sideband endpoint xhci_sideband_remove_endpoint() incorrecly assumes that the endpoint is running and has a valid transfer ring. Lianqin reported a crash during suspend/wake-up stress testing, and found the cause to be dereferencing a non-existing transfer ring 'ep->ring' during xhci_sideband_remove_endpoint(). The endpoint and its ring may be in unknown state if this function is called after xHCI was reinitialized in resume (lost power), or if device is being re-enumerated, disconnected or endpoint already dropped. Fix this by both removing unnecessary ring access, and by checking ep->ring exists before dereferencing it. Also make sure endpoint is running before attempting to stop it. Remove the xhci_initialize_ring_info() call during sideband endpoint removal as is it only initializes ring structure enqueue, dequeue and cycle state values to their starting values without changing actual hardware enqueue, dequeue and cycle state. Leaving them out of sync is worse than leaving it as it is. The endpoint will get freed in after this in most usecases. If the (audio) class driver want's to reuse the endpoint after offload then it is up to the class driver to ensure endpoint is properly set up.

📍 영향받는 시스템

수정 이전의 xHCI 사이드밴드 기능을 사용하는 Linux 커널 버전 (안정 버전 패치 적용 여부에 따라 상이)

⚔️ 공격 벡터

로컬 사용자가 USB 장치 연결/해제 및 절전 복귀를 반복 유발하여 커널 크래시(서비스 거부)를 일으킬 수 있음

🛡️ 대응 방법

배포판 제공 최신 커널로 업데이트하여 해당 커널 패치를 적용

🔧 검증 코드

출력된 커널 버전을 배포판의 보안 공지에서 CVE-2026-23009 수정이 포함된 버전과 비교하고, 해당 버전 이상이면 패치된 것입니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel