CVE-2023-4258

8.6 HIGH

📋 TL;DR

This vulnerability allows an attacker to impersonate a legitimate device during Bluetooth mesh provisioning by replaying a previously captured public key. It affects Bluetooth mesh implementations that use out-of-band (OOB) public key exchange, particularly in Zephyr RTOS-based IoT devices.

💻 Affected Systems

Products:
  • Zephyr RTOS Bluetooth mesh implementation
Versions: All versions prior to v3.4.0
Operating Systems: Zephyr RTOS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Bluetooth mesh provisioning with OOB public key exchange enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An attacker could join malicious devices to a Bluetooth mesh network, intercept communications, inject false data, or disrupt network operations entirely.

🟠

Likely Case

Unauthorized device provisioning leading to network infiltration and potential data interception in vulnerable IoT deployments.

🟢

If Mitigated

Limited impact if network segmentation and device authentication controls are properly implemented alongside patching.

🌐 Internet-Facing: LOW
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Requires proximity to Bluetooth mesh network and ability to capture OOB public key exchange.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Zephyr v3.4.0 and later

Vendor Advisory: https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-m34c-cp63-rwh7

Restart Required: Yes

Instructions:

1. Update Zephyr RTOS to v3.4.0 or later. 2. Rebuild and redeploy firmware to affected devices. 3. Ensure OOB public key exchange is properly validated in custom implementations.

🔧 Temporary Workarounds

Disable OOB public key provisioning

all

Temporarily disable out-of-band public key exchange in Bluetooth mesh provisioning

CONFIG_BT_MESH_PROV_OOB_PUBLIC_KEY=n in prj.conf

🧯 If You Can't Patch

  • Segment Bluetooth mesh networks from critical infrastructure
  • Implement additional device authentication layers beyond Bluetooth mesh provisioning

🔍 How to Verify

Check if Vulnerable:

Check if Zephyr version < 3.4.0 and CONFIG_BT_MESH_PROV_OOB_PUBLIC_KEY is enabled

Check Version:

grep ZEPHYR_VERSION build/zephyr/include/generated/version.h

Verify Fix Applied:

Verify Zephyr version >= 3.4.0 and test provisioning with OOB public key exchange

📡 Detection & Monitoring

Log Indicators:

  • Unexpected device provisioning events
  • Multiple provisioning attempts from same public key

Network Indicators:

  • Unauthorized devices appearing in mesh network
  • Abnormal provisioning traffic patterns

SIEM Query:

bluetooth AND mesh AND (provisioning OR oob) AND (public_key OR replay)

🔗 References

📤 Share & Export