
PoC in Python per CVE-2026-0101 che dimostra lo spoofing dell'indirizzo BLE tramite il replay di un Resolvable Private Address catturato per impersonare un dispositivo periferico attendibile.
# 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...")
Una periferica Bluetooth Low Energy che utilizza indirizzi privati risolvibili (RPA) non implementa una cache di replay. Un attaccante che osserva un RPA valido può disconnettere il dispositivo associato e riconnettersi utilizzando lo stesso RPA, impersonando il dispositivo attendibile.
Esegui la simulazione:
python ble_peripheral_sim.py
# In another terminal:
python exploit_ble_spoof.py
L'exploit cattura l'RPA annunciato e si ricollegherebbe come dispositivo attendibile.