🔍 CVE-2026-97908

0.0
CVSS Score
UNKNOWN
2026-09-25
2026-10-21 13:21
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 Bluetooth btqcomsmd 드라이버에서 hci_dev가 해제되기 전에 RPMsg 엔드포인트가 먼저 파괴되지 않아 발생하는 취약점입니다. 이로 인해 이미 해제된 hci_dev 메모리에 접근하는 Use-After-Free 오류가 발생할 수 있습니다.

💡 쉬운 설명

블루투스 장치를 끌 때 메모리를 정리하는 순서가 잘못되어, 이미 사라진 정보를 다시 불러오려다 시스템이 충돌하거나 오류가 생길 수 있는 문제입니다. 장치가 꺼지는 과정에서 발생하는 일시적인 메모리 관리 실수입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev The command and ACL RPMsg endpoints store struct btqcomsmd as their callback private data. The receive callbacks dereference btq->hdev without taking an hci_dev reference. The current teardown order frees the hci_dev before destroying the RPMsg endpoints in both the hci_register_dev() error path and the driver remove path. If WCNSS delivers data in that window, the endpoint callback can run with an already freed hci_dev and pass it to the Bluetooth core. For qcom_smd endpoints, rpmsg_destroy_ept() closes the channel and clears the callback under the channel recv_lock. The receive path holds the same lock while invoking the callback, so destroying the endpoints first both prevents new callbacks and serializes with any callback already running. Destroy the command and ACL endpoints before hci_free_dev(). Keep hci_unregister_dev() first during remove so the HCI core stops issuing operations before the transport endpoints are shut down. In the full registration-error cleanup path, return directly after freeing the hci_dev to avoid falling through to the partial-construction labels and destroying the endpoints twice.

📍 영향받는 시스템

Linux kernel (Bluetooth btqcomsmd driver components)

⚔️ 공격 벡터

로컬 공격자가 특정 블루투스 장치 해제 시퀀스를 유도하여 메모리 오류 유발

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 엔드포인트 파괴 순서 수정

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel