CVE-2026-81039 in Zephyr정보

요약

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

Bluetooth 호스트는 시작되는 모든 연결 가능 광고 세트에 대해 `subsys/bluetooth/host/adv.c`의 `le_adv_start_add_conn()`에서 고정된 `acl_conns[]` 풀로부터 bt_conn 객체(일명 "예약")를 사전 할당합니다. 외부 장치(peripheral)와의 연결이 완료되면, `subsys/bluetooth/host/hci_core.c`의 `find_pending_connect()`는 식별자(identity)와 피어 주소만을 사용하여 해당 예약을 조회하며, 지향성(directed)에서 비지향성(undirected)으로 폴백하는 방식을 사용합니다. 하지만 실제로 어떤 광고 세트가 종료되었는지에는 대한 정보를 가지고 있지 않습니다.

CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1인 환경에서는 LE Enhanced Connection Complete 이벤트가 LE Advertising Set Terminated 이벤트로 인해 세트(set)가 식별될 때까지 캐시됩니다. 이러한 조회 과정은 다른, 아직 실행 중인 광고 세트에 속한 예약을 반환할 수 있습니다.

이 결함은 무선(over the air)으로 인접한 모든 장치에서 접근 가능합니다. 애플리케이션이 동일한 식별자 위에서 두 개의 연결 가능 확장 광고 세트를 실행하는 경우 — 하나는 비지향성이고, 다른 하나는 피어 P를 향한 지향성입니다 (연결된 중앙장치로 다시 연결하면서도 새로운 중앙장치들의 접속을 여전히 허용하는 일반적인 패턴) — 원격 이니시에이터(initiator)가 주소가 P와 매핑되도록 하여 비지향성 세트를 통해 연결하면, 지향성 세트의 예약이 대신 소모됩니다. 이니시에이터 주소는 원격 장치에 의해 자유롭게 선택되며 링크 설정 시 인증되지 않으므로, 오할당(mis-attribution)을 트리거하기 위해 페어링(bonding), 페어링(pairing) 또는 기존 관계가 필요하지 않습니다.

그 후 비지향성 세트의 자체 예약은 고립(stranded)됩니다: BT_ADV_ENABLED 플래그는 이미 해제되었으며, 예약을 풀로 반환하는 유일한 경로인 `le_adv_stop_free_conn()`에 도달할 수 있는 것은 여전히 활성화된 세트에 대해서만 발생하므로, bt_le_ext_adv_stop()이 조기에 종료되고 해당 객체는 결코 릴리스되지 않습니다. 각 발생 건은 bt_disable() 또는 재부팅까지 CONFIG_BT_MAX_CONN 슬롯을 영구적으로 소모합니다. 연결 해제 후 지향성 광고 세트를 다시 시작하는 애플리케이션 패턴에서 공격자는 풀이 고갈될 때까지 이 시퀀스를 반복할 수 있으며, 이후에는 -ENOMEM 오류와 함께 연결 가능 광고가 실패하고 장치는 더 이상 접속을 수용하지 못하게 됩니다. 부수 효과로 지향성 세트는 예약 없이 계속 광고를 수행하므로, 해당 세트를 통한 실제 연결은 bt_hci_disconnect()에 의해 끊어집니다. 영향도는 가용성(Availability)에만 국한되며, 메모리 손상이나 정보 유출은 발생하지 않으며, 단일 광고 세트를 구성하는 환경에는 영향을 미치지 않습니다.

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-426526

EPSS

0.00000

출처

Want to know what is going to be exploited?

We predict KEV entries!