
Rejoue les trames CAN capturées pour démontrer la CVE-2026-21014, montrant comment l'absence d'authentification et de contrôles de fraîcheur permet des actions non autorisées sur les ECU automobiles.
# can_replay_sim.py - Simulates CAN bus replay
import time
can_messages = []
def send_can(msg_id, data):
print(f"CAN {msg_id:#x}: {data.hex()}")
can_messages.append((msg_id, data))
def receive_can():
return can_messages[-1] if can_messages else None
# Simulate car sending "door unlock" command
send_can(0x100, b'\x01\x00\x00\x00') # unlock
# Attacker replays captured frame
time.sleep(1)
captured = receive_can()
if captured:
print("Replaying captured frame...")
send_can(captured[0], captured[1])
Un réseau CAN (Controller Area Network) automobile n'implémente pas d'authentification des messages ni de vérification de fraîcheur. Un attaquant disposant d'un accès physique au port OBD‑II peut capturer une trame légitime (par exemple, le déverrouillage des portes) et la rejouer ultérieurement pour effectuer des actions non autorisées.
Exécutez la simulation :
python can_replay_sim.py
Le script affiche la capture et le rejeu d'une commande de déverrouillage.