
Python PoC para CVE-2026-0101 que demuestra la suplantación de direcciones BLE mediante la reproducción de una Dirección Privada Resoluble capturada para hacerse pasar por un periférico de confianza.
# 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...")
Un periférico Bluetooth Low Energy que utiliza direcciones privadas resolubles (RPA) no implementa una caché de replay. Un atacante que observe una RPA válida puede desconectar el dispositivo vinculado y reconectarse usando la misma RPA, suplantando al dispositivo de confianza.
Ejecute la simulación:
python ble_peripheral_sim.py
# In another terminal:
python exploit_ble_spoof.py
El exploit captura la RPA anunciada y se reconectaría como el dispositivo de confianza.