🔍 CVE-2026-97977

0.0
CVSS Score
UNKNOWN
2026-09-25
2026-10-19 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 btusb 드라이버에서 btusb_rx_work 작업이 실행 중일 때 btusb_data 구조체가 해제되는 Use-After-Free(UAF) 취약점이 발견되었습니다. 비동기 취소 함수를 사용하여 작업이 완전히 종료되기 전에 메모리가 해제되어 발생하며, 이를 해결하기 위해 동기식 취소 함수로 수정되었습니다.

💡 쉬운 설명

블루투스 장치를 연결 해제할 때, 컴퓨터가 블루투스 작업을 완전히 멈추기도 전에 관련 메모리를 먼저 지워버리는 문제입니다. 이로 인해 시스템이 잘못된 메모리 주소를 참조하여 오류가 발생하거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btusb: Fix UAF of btusb_data by rx_work btusb_close() and btusb_flush() cancel data->rx_work with the asynchronous cancel_delayed_work(), so if btusb_rx_work() is already running on another CPU it keeps running after the cancel returns. btusb_disconnect() calls hci_unregister_dev(), which invokes btusb_close(), and then frees the btusb_data. A still running btusb_rx_work() then dereferences the freed data: while ((skb = skb_dequeue(&data->acl_q))) data->recv_acl(data->hdev, skb); Use cancel_delayed_work_sync() instead. In btusb_close() the cancel also has to happen after btusb_stop_traffic(), otherwise an URB completion racing with the cancel can requeue the work right after it has been waited for.

📍 영향받는 시스템

Linux kernel (btusb driver 사용 시스템)

⚔️ 공격 벡터

로컬 공격자가 블루투스 장치의 연결 및 해제 과정을 정밀하게 조작하여 메모리 오류 유도

🛡️ 대응 방법

btusb_close() 및 btusb_flush() 함수에서 cancel_delayed_work_sync()를 사용하도록 커널 패치 적용

🔧 검증 코드

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

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel