CVE-2026-82389 in Zephyr정보

요약

\~에 의해 VulDB • 2026. 10. 26.

블루투스 클래식 핸즈프리 프로필의 오디오 게이트웨이(Ag) 역할에서 hfp_ag_create() 함수는 피어(peer)를 대상으로 SDP 탐색을 시작하며, 이는 subsys/bluetooth/host/classic/sdp.c 내의 SDP 클라이언트의 대기 요청 목록에 ag->sdp_param._node 임베디드 노드를 연결합니다. 후속 bt_rfcomm_dlc_connect() 호출이 실패할 경우, bt_hfp_ag_connect()는 해당 노드가 여전히 연결되어 있고 ag->slc_work가 시스템 작업 큐(work queue)에 아직 대기 상태인 동안 AG 객체 전체를 memset()로 지워 정리합니다. 비행 중(in-flight)인 SDP 탐색은 취소할 수 없습니다(bt_sdp_discover_cancel()이 공개 헤더에서 선언되었지만 구현체가 없음). 따라서 요청 목록에는 func, pool 및 uuid 포인터가 0으로 초기화된 채 그대로 남아 있습니다.

정상적인 AG 흐름(bt_sdp_get_proto_param()은 범위 검증을 수행하지 않으며, samples/bluetooth/classic/handsfree_ag는 해당 값을 그대로 전달함)에서 bt_hfp_ag_connect()에 전달되는 RFCOMM 채널은 피어의 SDP 핸즈프리 서비스 레코드에서 가져옵니다. 따라서 무선 범위에 있는 원격 BR/EDR 장치가 유효 범위 0x01..0x1e를 벗어난 RFCOMM 채널을 광고하면, bt_rfcomm_dlc_connect()가 실패하여 해당 정리(wipe) 로직에 도달하게 됩니다. 피어의 SDP 레코드를 읽기 위해 페어링(pairing)이 필요 없으며, 피어는 ACL을 끊거나 적절한 시점에 동일한 DLCI에서 RFCOMM DLC를 경쟁(racing)시켜 이 실패를 유발할 수도 있습니다.

SDP 클라이언트가 다음으로 요청 목록을 진행하면 sdp_client_discover()가 0으로 초기화된 매개변수를 역참조합니다(NULL pool 및 param->uuid->type로 net_buf_alloc(param->pool, …) 호출). 결과 알림 경로에서는 NULL params->func를 통해 호출됩니다. 연결된 노드를 0으로 초기화하면 stale tail 포인터 뒤의 요청 목록이 잘리며, 해제된 AG 슬롯을 다시 아머링(re-arming)하면 동일한 노드가 재연결되어 자기 루핑(self-looping) 목록을 생성하여 블루투스 RX 스레드를 멈출 수 있습니다. 영향은 블루투스 스택의 크래시 또는 정지입니다. 쓰여지는 값은 고정된 정적 주소에 있는 상수 0이므로, 공격자가 제어 가능한 쓰기(write)는 제공되지 않습니다.

CONFIG_BT_CLASSIC 및 CONFIG_BT_HFP_AG 구성을 사용하고 오디오 게이트웨이 역할을 사용하는 빌드만 영향을 받습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 08. 28.

모더레이션

수락

항목

VDB-426524

EPSS

0.00000

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!