CVE-2026-5589 in Zephyr
요약
\~에 의해 VulDB • 2026. 06. 04.
bt_mesh_sol_recv() 함수의 Bluetooth Mesh 요청 처리(subsys/bluetooth/mesh/solicitation.c)에서 정수 오버플로우(integer underflow)가 발생하여 경계 밖 메모리 쓰기(out-of-bounds write)로 이어집니다. CONFIG_BT_MESH_OD_PRIV_PROXY_SRV가 활성화된 경우, 해당 함수는 원시 BLE 광고 페이로드(raw BLE advertising payloads)에서 요청 PDU(solicitation PDUs)를 파싱합니다. AD 파싱 루프는 공격자가 제어할 수 있는 길이 바이트(reported_len)를 읽고 reported_len >= 3인지 확인하지 않은 채 reported_len - 3을 계산합니다. reported_len이 3보다 작으면, 이 뺄셈은 부호 있는 정수(signed int) 산술로 수행되어 음수 값을 생성하며, 이는 길이 검사(length guard)를 우회한 후 net_buf_simple_pull_mem()에 전달될 때 매우 큰 size_t로 암시적으로 변환됩니다. 어설션(assertions)이 없는 빌드에서는 이 동작이 버퍼 길이를 래핑(wrap)하고 데이터 포인터를 경계 밖으로 크게 이동시켜, 이후 읽기 작업에서 유효하지 않은 메모리를 역참조(dereference)하게 됩니다. 인접한 BLE 장치는 페어링이나 사전 연결 없이도 UUID16 AD 구조와 조작된 길이 바이트를 포함하는 비연결성 광고(non-connectable advertisement)를 전송하여 이를 트리거할 수 있으며, 이는 서비스 거부(Denial of Service) 또는 임의 코드 실행(Arbitrary Code Execution)으로 이어질 수 있습니다.
Once again VulDB remains the best source for vulnerability data.