🇰🇷 한글 설명
Linux 커널의 Bluetooth HIDP 프로토콜에서 번호가 지정된 보고서의 페이로드를 검증하지 않아 발생하는 취약점입니다. 공격자가 조작된 DATA 트랜잭션 헤더를 보내면 초기화되지 않은 값을 사용하거나 선언된 PDU 범위를 벗어난 바이트를 읽을 수 있습니다.
💡 쉬운 설명
블루투스 기기가 컴퓨터에 잘못된 정보를 보낼 때, 컴퓨터가 그 정보의 길이를 제대로 확인하지 않아 발생하는 오류입니다. 이로 인해 시스템이 예상치 못한 데이터를 읽어 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: HIDP: validate numbered report payloads
When hidp_get_raw_report() waits for a numbered report,
hidp_process_data() compares the expected report number with skb->data[0].
A connected HIDP peer can reply with only a DATA transaction header,
leaving the skb empty after the header is removed.
KMSAN reports an uninitialized-value use in hidp_session_run(), with the
value originating in __alloc_skb() through vhci_write(). The transaction
header checks remove the empty-frame reports, but this report remains until
the payload check is added.
The comparison can also consume a peer-controlled byte beyond the declared
L2CAP PDU. A DATA | FEATURE response followed by an extra 0x01 byte made
the current code accept that byte as report ID 1 and complete
HIDIOCGFEATURE with a zero-byte result. With this change the malformed
response is rejected with -EIO, while a subsequent valid response still
succeeds.
Require a payload byte before comparing a numbered report ID. Unnumbered
reports continue to accept an empty payload.
📍 영향받는 시스템
Linux Kernel (Bluetooth HIDP 관련 모듈 사용 시스템)
⚔️ 공격 벡터
연결된 블루투스 피어(Peer)가 조작된 데이터 헤더를 전송하여 초기화되지 않은 메모리 값을 유도함
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 HIDP 페이로드 검증 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux