CVE-2026-19738 in Zephyr정보

요약

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

Connected Isochronous Stream(CIS) 생성을 위한 Bluetooth Link Layer Control Procedure(LLCP) 구현은 호스트 알림용으로 나중에 재사용할 수 있도록 RX 노드(ctx->node_ref.rx, NODE_RX_TYPE_RETAIN으로 표시됨)를 유지합니다. 이는 주변기기에서 LL_CIS_REQ에 대한 호스트의 응답을 기다리는 동안과 중앙장치에서 로컬 시작 CIS 생성 전체 기간 동안 해당 동작이 수행됩니다. subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c 파일에서 llcp_rp_cc_rx() 및 llcp_lp_cc_rx() 함수의 "invalid PDU received" 경로는 연결을 종료하고 절차를 완료하지만, 유지된 노드를 해제하지 않습니다. 이로 인해 llcp_lr_check_done() 및 llcp_rr_check_done()에서 확인되는 불변식이 깨지고 노드 메모리가 고아 상태가 됩니다.

무선 범위 내의 피어 장치는 인증되지 않고 암호화되지 않은 ACL 링크상에서 단일 추가 LL Control PDU를 전송하여 이 취약점을 공격할 수 있습니다. 주변기기를 대상으로 할 경우, 공격자는 유효한 LL_CIS_REQ를 보내고 호스트가 응답하기 전에 관련 없는 임의의 LL Control PDU(예: LL_VERSION_IND)를 전송하며, 이는 ull_cp_rx()에 의해 활성 원격 절차로 라우팅됩니다. CIS 생성을 수행하는 중앙장치를 대상으로 할 경우, 악성 주변기기가 CIS_REQ에 대해 LL_UNKNOWN_RSP로 응답하고, 이는 활성 로컬 절차로 전달됩니다. 페어링, 암호화 또는 사용자 상호작용은 필요하지 않으며, CONFIG_BT_CTLR_PERIPHERAL_ISO 또는 CONFIG_BT_CTLR_CENTRAL_ISO가 활성화되어 있을 때 해당 코드가 컴파일됩니다.

기본 빌드(CONFIG_BT_CTLR_ASSERT_DEBUG가 기본값으로 y)에서는 유지된 노드에 대한 어설션이 즉시 발동하여 컨트롤러 치명적 오류를 발생시키고, 일반적으로 주입된 PDU 하나만으로 시스템 리셋을 유발합니다. 개발용 어설션을 비활성화하면 각 시도마다 컨트롤러의 작은 LL 알림 풀(LL_PDU_RX_CNT, 2 * CONFIG_BT_CTLR_LLCP_CONN)에서 노드 하나가 영구적으로 손실되고 해당 memq_link_t도 함께 소모됩니다. 연결-공격-재연결 사이클을 반복하면 풀이 고갈되어 이후에는 알림 할당이 항상 실패하고 RX 흐름 제어(stall)가 발생하며, llcp_lp_cc_flush() 내의 비활성화 불가능한 LL_ASSERT_ERR()에서 오류(faults)가 발생합니다. 영향은 가용성에 국한됩니다(누출된 노드는 고아 상태가 되며 재사용되거나 이중 해제되지 않음)이며, 복구하려면 재부팅이 필요합니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 08. 13.

모더레이션

수락

항목

VDB-416744

EPSS

0.00000

활동

낮음

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!