🇰🇷 한글 설명
Linux 커널의 xHCI 사이드밴드 구현에서 ring sg table 페이지 누수 취약점이 발견되었습니다. xhci_ring_to_sgtable() 함수가 성공적으로 sg_table을 생성한 후에도 임시 페이지 배열을 해제하지 않아 메모리가 지속적으로 누수되는 문제입니다.
💡 쉬운 설명
컴퓨터의 USB 컨트롤러 관련 기능이 작동할 때, 사용이 끝난 임시 메모리를 제대로 돌려주지 않고 계속 쌓아두는 버그입니다. 이 문제가 지속되면 시스템의 메모리가 점차 부족해져 컴퓨터가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
xhci: sideband: fix ring sg table pages leak
xhci_ring_to_sgtable() allocates a temporary pages array and
uses it to build the returned sg_table with
sg_alloc_table_from_pages().
The error paths free the pages array, but the success path
returns the sg_table without freeing it. This leaks the temporary
array every time a sideband client gets an endpoint or event ring
buffer.
Free the pages array after sg_alloc_table_from_pages() succeeds.
The returned sg_table has its own scatterlist entries and does not
depend on the temporary array after construction.
📍 영향받는 시스템
Linux kernel (xhci sideband 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 사이드밴드 클라이언트가 엔드포인트 또는 이벤트 링 버퍼를 반복적으로 요청하여 메모리 고갈 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 xhci_ring_to_sgtable()의 메모리 해제 로직 수정 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인