
نص Python (PoC) لثغرة CVE-2026-0101 يوضح انتحال عنوان BLE عبر إعادة بث عنوان خاص قابل للحل (Resolvable Private Address) مُلتقط لانتحال هوية جهاز طرفي موثوق.
# ble_peripheral_sim.py - Simulated BLE peripheral with weak RPA verification
import asyncio, random, hashlib
from bleak import BleakServer, BleakScanner
# (Simplified - we'll use a basic socket to simulate BLE bonding)
# Store bonded IRK (Identity Resolving Key)
irk = b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10'
def resolve_rpa(rpa, irk):
# This is a stub: real resolution uses AES-128; vulnerability: attacker can brute-force or replay
# Assume the peripheral accepts any RPA that decrypts to a known hash without replay protection.
return True # always accept for demo
# Simulating the peripheral: wait for connection, check RPA, if resolved, trust.
print("Peripheral running, accepting any RPA...")
يفشل جهاز طرفي من Bluetooth Low Energy (BLE) يستخدم العناوين الخاصة القابلة للحل (RPA) في تنفيذ ذاكرة تخزين مؤقت لمنع إعادة الاستخدام. يمكن للمهاجم الذي يرصد عنوان RPA صالحًا فصل الجهاز المرتبط وإعادة الاتصال باستخدام نفس العنوان، منتحلًا صفة الجهاز الموثوق.
شغّل المحاكاة:
python ble_peripheral_sim.py
# In another terminal:
python exploit_ble_spoof.py
يلتقط الاستغلال عنوان RPA المُعلَن ويعيد الاتصال بوصفه الجهاز الموثوق.