Exploiting the Tesla Wall Connector from its charge port connector - Part 2: bypassing the anti-downgrade

1 minute de lecture

Mis à jour :

Contournement de la protection anti-downgrade du Tesla Wall Connector

Cette analyse détaille une méthode pour contourner la protection “anti-downgrade” (anti-rétrogradation) introduite par Tesla dans le firmware 24.44.3 du Wall Connector, permettant d’exécuter une ancienne version du firmware vulnérable via une attaque par le port de charge.

Points clés

  • Fonctionnement du bootloader : Le chargeur utilise deux emplacements (slots) de firmware. Le bootloader vérifie la signature RSA et le CRC, mais ignore le mécanisme de “ratchet” (verrou de sécurité versionné).
  • Faille de logique : La vérification de la version est effectuée uniquement par la routine de mise à jour (0x201). Une fois cette étape validée, le bootloader se fie exclusivement à la table de partition pour choisir le firmware à exécuter.
  • Méthode d’exploitation : Il est possible de valider une version légitime récente pour mettre à jour la table de partition, puis d’effacer ce slot légitime (via la routine 0xFF00) pour y injecter un ancien firmware signé. Au redémarrage, le système exécute l’ancien firmware car la table de partition pointe toujours vers ce slot.

Vulnérabilités

  • Absence de Secure Boot robuste : Le bootloader ne vérifie pas la cohérence de la version (ratchet) du firmware, rendant la protection anti-downgrade dépendante d’un seul processus logiciel facilement contournable.
  • Séquence de mise à jour malléable : La possibilité de modifier l’état du système de fichiers après la validation du firmware permet de désynchroniser la table de partition du contenu réel de la mémoire Flash.

Recommandations

  • Sécurisation au niveau du Bootloader : Implémenter la vérification du “ratchet” de sécurité directement dans le code de démarrage (bootloader) plutôt que dans la routine de mise à jour.
  • Intégrité atomique : Modifier la routine 0xFF00 pour invalider immédiatement l’entrée de la table de partition lors de l’effacement d’un slot, afin d’éviter qu’un slot effacé ne reste sélectionné comme bootable.
  • Gestion des états : Forcer un redémarrage immédiat après la validation d’une mise à jour ou empêcher l’ouverture d’une nouvelle session d’écriture après l’exécution réussie de la routine 0x201.

Source