CVE-2026-19936 in Zephyr정보

요약

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

Bluetooth Mesh Access 레이어의 지연 가능 메시지 큐(subsys/bluetooth/mesh/delayable_msg.c)는 busy_ctx, free_ctx, free_chunks라는 세 가지 intrusive list와 하나의 k_work_delayable을 두 개의 협력 스레드 간에 동기화 없이 공유합니다. bt_mesh_delayable_msg_manage()는 Bluetooth 호스트 RX 스레드에서 실행되는 반면, delayable_msg_handler()는 시스템 workqueue에서 실행됩니다. 목록이 중간 상태(예: bt_rand() 내의 enqueuer, bt_mesh_access_send() 내의 양쪽 컨텍스트)에 있을 때 두 스레드는 모두 블록되므로, 다른 컨텍스트가 손상된(torn) 상태를 관찰할 수 있습니다. delayable_msg_handler()는 busy_ctx에서 sys_slist_get()의 결과를 NULL 체크 없이 사용했으며, allocate_delayable_msg_ctx()는 sys_slist_is_empty()를 테스트한 후 별도의 sys_slist_get()이 성공할 것이라고 가정했습니다.

CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG 및 CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CTX_ENABLED가 기본적으로 y로 설정되어 있으므로, 수신된 메시지에 대한 모든 모델 응답은 이 큐에 대기됩니다. 따라서 enqueuer는 외부 트래픽의 직접적인 결과로서 실행됩니다. NetKey와 바인딩된 AppKey를 보유하고 있는 정당한 또는 침해된 네트워크 구성원 등 Access 레이어 메시지를 모델이 수락할 수 있는 피어(peer)는 도착률, 유발되는 응답의 크기 및 목적지 주소를 제어함으로써 4개 엔트리의 컨텍스트 풀과 40개 엔트리의 청크(chunk) 풀의 점유율을 통제합니다. chunk 풀을 고갈시키면 bt_mesh_delayable_msg_manage()가 purge 경로로 진입하여 큐에 대기된 유일한 메시지를 전송하고 해제하며, 지연 가능 작업 항목(delayable work item)이 여전히 활성화되어 있는 동안 busy_ctx를 비웁니다. 만약 이 시점에 enqueuer가 양보(yield)하면 handler는 빈 목록을 대상으로 실행됩니다.

그 결과 시스템 workqueue 스레드에서 고정된 낮은 주소에 대한 NULL 기반 포인터(pending_msg->fired_time += 10)를 통한 read-modify-write 작업이 발생합니다. 일반적인 타겟에서는 이로 인해 system workqueue 스레드가 중단되어 mesh 타이머 메커니즘을 포함한 모든 workqueue 기반 기능이 정지하거나 노드가 리셋되므로, 영향은 해당 노드의 가용성 손실로 나타납니다. 쓰기 값과 주소는 고정되어 있으며 공격자가 제어할 수 있는 길이나 인덱스는 관여하지 않으므로 메모리 손상이나 코드 실행을 위해 악용될 수는 없습니다. 동일한 비동기화 창(window)으로 인해 하나의 메시지 컨텍스트가 두 개의 컨텍스트에 의해 동시에 선택 및 해제되어 중복 전송, 중복 send-completion 콜백 및 청크 소유권 교차가 발생했습니다.

이 수정은 blocking 호출 간에는 절대 보유되지 않는 k_spinlock을 사용하여 모든 목록 변경 작업을 직렬화하고, push_msg_from_delayable_msgs()가 큐 헤드를 원자적으로 분리하여 전송 중인 메시지가 어떤 목록에도 속하지 않도록 하며, delayable_msg_handler()에서 체크되지 않은 sys_slist_get()을 제거합니다. 또한 스택이 일시 중단되거나 리셋되는 동안 큐의 맨 앞에 도달하는 모든 메시지를 삭제합니다.

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

책임이 있는

Zephyr

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-417354

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!