CVE-2026-15460 in Zephyr
요약
\~에 의해 VulDB • 2026. 09. 10.
블루투스 클래식(BR/EDR)의 L2CAP 수신 핸들러인 subsys/bluetooth/host/classic/l2cap_br.c 내 bt_l2cap_br_recv()는 대상 채널 ID에 기반하여만 착신 데이터 PDU를 분배하며, 대상 채널이 BT_L2CAP_CONNECTED 상태에 도달했는지 여부는 확인하지 않습니다. 동적 채널은 RX CID가 할당되고 연결의 채널 목록에 추가될 때 여전히 BT_L2CAP_CONNECTING(및 이후 BT_L2CAP_CONFIG) 상태에 있으며, 이는 구성 완료 및 보안이 필요한 PSM의 경우 피어 인증(l2cap_br_conn_req()) 이전에 발생합니다.
채널이 이 시간 동안 bt_l2cap_br_lookup_rx_cid()를 통해 검색 가능하기 때문에, 무선 범위 내의 원격 피어가 해당 CID로 주소 지정된 데이터 PDU를 전송하여 아직 확립되지 않은 채널에서 처리되도록 할 수 있습니다. 분배는 l2cap_br_conf()에 의해 구성 중에만 초기화되는 채널 필드(BR_CHAN(chan)->rx.mode, rx.mps)에 의존합니다. 채널 객체는 풀링(pooling)되며 bt_l2cap_br_chan_del()이 rx.mode 또는 재조립 버퍼 _sdu를 리셋하지 않으므로, 재활용된 채널은 CONNECTING 창(window) 동안 이전 상태를 유지한 채로 프레임을 이전 파라미터 및 잠재적으로 이전 상태인 _sdu 포인터와 함께 재전송/흐름 제어 경로(bt_l2cap_br_ret_fc_recv())로 라우팅할 수 있습니다.
영향력은 반열린(및 아마도 인증되지 않은) 채널에서 상위 레이어 프로토콜 핸들러로의 공격자 데이터 전달, 그리고 재활용된 채널 객체에서의 이전 또는 부분적으로 초기화된 채널 상태에 대한 동작으로 이어지며, 이는 채널/링크 종료(Denial of Service) 및 stale-_sdu 경우 덩글링 포인터(dangling-pointer) 조건을 초래합니다. 수정 방법은 BR_CHAN(chan)->state < BT_L2CAP_CONNECTED 가드를 명시적으로 추가하여 채널이 완전히 연결되기 전에 수신된 모든 데이터를 폐기하도록 합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.