🇰🇷 한글 설명
Linux 커널의 btusb 드라이버에서 SCO 링크 수를 USB 대체 설정(alternate setting) 테이블 인덱스로 변환할 때, 테이블 범위를 검증하지 않아 alts[] 배열의 경계를 넘어 읽을 수 있는 문제입니다. 수정으로 sco_num을 테이블의 마지막 항목으로 제한하여 범위를 벗어난 접근을 방지합니다.
💡 쉬운 설명
블루투스 음성 통화 연결 수를 계산하는 리눅스 드라이버 코드에 범위 검사가 빠져 있었습니다. 그 결과 허용된 목록의 바깥을 읽을 수 있는 잠재적 결함이 있었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btusb: clamp SCO altsetting table indices
btusb_work() maps the number of active SCO links to USB alternate
settings through a three-entry lookup table when CVSD traffic uses
transparent voice settings. The lookup currently indexes alts[] with
data->sco_num - 1 without first constraining sco_num to the number of
available table entries.
While the table only defines alternate settings for up to three SCO
links, data->sco_num comes from hci_conn_num() and is used directly.
Cap the lookup to the last table entry before indexing it so the
driver keeps selecting the highest supported alternate setting without
reading past alts[].
📍 영향받는 시스템
패치 이전 Linux 커널의 btusb(USB 블루투스) 드라이버를 사용하는 시스템
⚔️ 공격 벡터
로컬 또는 블루투스 SCO 연결 수가 많아지는 상황에서 잘못된 인덱스 접근을 유발하는 방식으로 악용될 수 있으나, 구체적인 공격 절차는 공개되지 않았습니다.
🛡️ 대응 방법
배포판 제공 최신 커널로 업데이트하고 재부팅하거나, 해당 수정이 포함된 커널 패치를 적용하세요.
🔧 검증 코드
출력된 커널 버전이 배포판의 보안 업데이트 목록에서 이 CVE 수정이 포함된 버전 이상인지 확인하고, 해당되지 않으면 패키지 관리자로 업데이트하세요.