🔍 CVE-2025-37918

8.8
CVSS Score
HIGH
2025-05-20
2026-10-15 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Bluetooth btusb 드라이버에서 WCN7851 칩셋의 QCA 펌웨어 크래시 덤프를 처리할 때 NULL 포인터 역참조가 발생할 수 있는 취약점입니다. handle_dump_pkt_qca() 함수가 성공 시에도 잘못된 반환값을 전달하여 skb가 중복 처리되거나 조기에 해제되어 커널 패닉을 유발합니다.

💡 쉬운 설명

블루투스 장치의 오류 보고 데이터를 처리하는 과정에서 컴퓨터가 잘못된 메모리 주소를 참조하여 시스템이 멈추거나 충돌할 수 있는 문제입니다. 특정 블루투스 칩셋에서 오류가 발생할 때 시스템 안정성에 영향을 줄 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue() A NULL pointer dereference can occur in skb_dequeue() when processing a QCA firmware crash dump on WCN7851 (0489:e0f3). [ 93.672166] Bluetooth: hci0: ACL memdump size(589824) [ 93.672475] BUG: kernel NULL pointer dereference, address: 0000000000000008 [ 93.672517] Workqueue: hci0 hci_devcd_rx [bluetooth] [ 93.672598] RIP: 0010:skb_dequeue+0x50/0x80 The issue stems from handle_dump_pkt_qca() returning 0 even when a dump packet is successfully processed. This is because it incorrectly forwards the return value of hci_devcd_init() (which returns 0 on success). As a result, the caller (btusb_recv_acl_qca() or btusb_recv_evt_qca()) assumes the packet was not handled and passes it to hci_recv_frame(), leading to premature kfree() of the skb. Later, hci_devcd_rx() attempts to dequeue the same skb from the dump queue, resulting in a NULL pointer dereference. Fix this by: 1. Making handle_dump_pkt_qca() return 0 on success and negative errno on failure, consistent with kernel conventions. 2. Splitting dump packet detection into separate functions for ACL and event packets for better structure and readability. This ensures dump packets are properly identified and consumed, avoiding double handling and preventing NULL pointer access.

📍 영향받는 시스템

Linux Kernel (WCN7851 칩셋을 사용하는 시스템)

⚔️ 공격 벡터

특정 블루투스 하드웨어(WCN7851)에서 의도적으로 펌웨어 크래시 덤프를 발생시켜 커널 패닉 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 handle_dump_pkt_qca() 함수의 반환값 로직 수정 적용

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel