🇰🇷 한글 설명
Linux 커널의 Bluetooth hci_sock 모듈에서 이벤트 길이를 검증하기 전에 필터링을 수행하여 발생하는 취약점입니다. 악의적으로 조작된 이벤트를 통해 데이터 경계를 벗어난 읽기(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
블루투스 장치가 잘못된 크기의 정보를 보낼 때, 컴퓨터가 이를 제대로 확인하지 않고 읽으려다 오류가 발생하는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 비정상적으로 작동할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: hci_sock: validate event length before filtering
is_filtered_packet() reads the event code from skb->data[0] without first
checking that the skb is nonempty. When an opcode filter is configured,
it also reads the command opcode at offsets 3 or 4 without checking that
a Command Complete or Command Status event is long enough.
hci_send_to_sock() invokes the filter before hci_event_packet() validates
the event header. A malformed event supplied by a controller or a vhci
device can therefore cause an out-of-bounds read.
Keep the unmasked event code for the opcode checks. The masked value is
needed for the 64-bit event bitmap, but using it to identify command events
aliases event codes above 0x3f. In particular, Synchronous Train Complete
(0x4f) was treated as Command Status (0x0f) even though its payload has no
opcode.
Reject actual command events that are too short for the field being
inspected. A truncated command event cannot match a configured opcode.
📍 영향받는 시스템
Linux Kernel (Bluetooth hci_sock 관련 모듈 포함 버전)
⚔️ 공격 벡터
조작된 블루투스 컨트롤러 또는 vhci 장치를 통한 악성 이벤트 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인