🇰🇷 한글 설명
Linux 커널의 Bluetooth virtio_bt 드라이버에서 Zephyr 벤더 명령(0xfc08) 응답 처리 시 길이 검증 없이 문자열을 읽어 발생하는 Out-of-Bounds(OOB) Read 취약점입니다. 공격자가 조작된 응답을 보낼 경우 커널 메모리의 인접한 데이터가 로그나 debugfs를 통해 유출될 수 있습니다.
💡 쉬운 설명
블루투스 장치가 정보를 전달할 때, 정해진 길이보다 더 많은 데이터를 읽으려고 시도하여 컴퓨터 내부의 민감한 정보가 밖으로 새 나갈 수 있는 문제입니다. 이를 통해 공격자는 시스템의 메모리 내용을 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: virtio_bt: avoid OOB read of build info string
The virtbt_setup_zephyr() sends the Zephyr vendor command 0xfc08 (Read
Build Information) and hands the response to bt_dev_info() and
hci_set_fw_info() as a "%s" string starting at skb->data + 1, without
checking the length. A backend that answers with status only leaves that
pointer past the end of the received data, so the walk reads adjacent
slab memory until it meets a NUL. Those bytes reach the kernel log and
the firmware-info debugfs file.
To fix this, print the string with a bounded "%.*s" limited to
skb->len - 1. A short or unterminated response then prints as much as
arrived instead of failing setup.
This mirrors commit dd068ef04412 ("Bluetooth: bpa10x: avoid OOB read of
revision string in bpa10x_setup()"), which fixed the identical pattern.
📍 영향받는 시스템
Linux kernel (virtio_bt 드라이버를 사용하는 환경)
⚔️ 공격 벡터
조작된 응답을 보내는 악의적인 블루투스 백엔드 장치를 통한 메모리 정보 유출
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 문자열 읽기 길이를 제한해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.