Premier jailbreak logiciel sur Nintendo Switch 2 : comment l’exploit ns2jb contourne le firmware 23.0.1 sans puce

Écran de la Nintendo Switch 2 affichant des personnages moddés dans Mario Kart World grâce au jailbreak logiciel ns2jb

La sécurité logicielle de la nouvelle console hybride de Nintendo vient de connaître sa première véritable brèche publique. Le chercheur en cybersécurité Sammy Hajhamid, connu sous le pseudonyme pepsipu (étudiant à Caltech passé par Trail of Bits, Zellic et OtterSec), a publié le code source sur GitLab et la démonstration technique de ns2jb, le tout premier jailbreak 100 % logiciel destiné à la Nintendo Switch 2 sur son dernier firmware 23.0.1.

Contrairement aux modifications matérielles qui imposent de souder une puce directement sur la carte mère, cet exploit qualifié de tethered fonctionne uniquement par voie logicielle. Il permet déjà d’exécuter du code natif arbitraire avec les privilèges des modules système ordinaires (sysmodules) ainsi que du module intégré fs chargé de gérer le système de fichiers de la console.

Voir les disponibilités Nintendo Switch 2 sur Amazon→

Des personnages moddés dans Mario Kart World et un accès direct aux sauvegardes

Pour prouver l’efficacité concrète de sa chaîne d’exploitation sur une machine à jour, le chercheur a mis en ligne deux séquences vidéo tournées avec les étudiants de la maison Dabney House à Caltech. On y découvre une partie en écran scindé à quatre joueurs sur l’exclusivité Mario Kart World dans laquelle les pilotes habituels ont été remplacés par des personnages personnalisés injectés dans le jeu, allant de Walter White et Goku jusqu’à Hatsune Miku, Steve, Sans ou encore Cinnamoroll.

Trailer video

Au-delà du modding de jeux exclusifs à la Nintendo Switch 2, l’accès obtenu par ns2jb ouvre plusieurs portes techniques immédiates pour la scène homebrew :

  • Extraction et sauvegarde des données : les joueurs peuvent récupérer et copier leurs fichiers de sauvegarde en dehors de la mémoire interne de la console sans passer par le cloud payant.
  • Exécution d’applications maison (homebrew) : le contournement des vérifications du chargeur autorise le lancement de programmes natifs non signés par Nintendo.
  • Rétro-ingénierie et déchiffrement : la prise de contrôle du module fs donne accès au moteur cryptographique matériel utilisé notamment pour déchiffrer les conteneurs NCA4, ainsi qu’à la plupart des périphériques via les entrées-sorties mappées en mémoire (MMIO).

Un banc de test automatisé où OpenAI Codex pilote la console via JetKVM

La méthode employée pour découvrir et assembler cette chaîne de failles illustre l’évolution rapide de la recherche en sécurité sur consoles, dans la lignée de l’automatisation des jailbreaks observée récemment sur l’architecture de la PS5. Sammy Hajhamid a conçu un dispositif physique reliant une Switch 1 et une Nintendo Switch 2 à deux boîtiers JetKVM capables d’envoyer des commandes manette en USB tout en capturant le retour vidéo en HDMI.

Banc de test Nintendo Switch 2 avec boîtiers JetKVM et actionneur SwitchBot pour le jailbreak ns2jb
Le banc d’essai de Sammy Hajhamid associant une Switch 2, une Switch 1, deux boîtiers JetKVM et un actionneur mécanique SwitchBot fixé sur le bouton d’alimentation.

Lorsqu’une tentative d’exploitation provoque un plantage fatal du système, la console exige un appui physique sur le bouton Power pour redémarrer. Le chercheur a résolu ce problème en fixant un petit actionneur mécanique Bluetooth SwitchBot au-dessus du bouton d’alimentation, puis a confié l’ensemble du banc d’essai à plusieurs instances de l’agent de programmation OpenAI Codex.

De SmileBASIC 4 au module système fs : l’anatomie de la chaîne d’exploitation

Si la piste initiale du navigateur WebKit (via un portail captif Wi-Fi) s’est vite heurtée aux défenses matérielles de l’architecture ARMv8 de la Switch 2, notamment l’authentification de pointeurs (PAC), l’intégrité du flux de contrôle (CFI) et la mémoire exécutable en lecture fermée (XOM), le chercheur a contourné l’obstacle en ciblant la rétrocompatibilité des logiciels de la première Switch.

Comme ces titres ne prennent pas en charge le mécanisme PAC et que leur code peut être déchiffré sur la première génération de console, l’application de programmation SmileBASIC 4 (déjà célèbre pour l’exploit smilehax à l’époque de la Nintendo 3DS) a servi de cheval de Troie idéal :

  1. Le point d’entrée (smilehax2) : l’agent Codex a identifié un dépassement d’entier 32 bits (integer overflow) dans l’interpréteur BASIC lors de l’exécution de la commande REMOVE sur un tableau. En passant des valeurs qui débordent dans les nombres négatifs (0x9fffffff), la fonction memmove décale la mémoire de 8 octets et écrase la taille d’une chaîne de caractères avec un pointeur mémoire, offrant une lecture et une écriture hors limites dans l’espace utilisateur.
  2. L’escalade vers le module fs : depuis SmileBASIC 4, l’exploit invoque la commande IPC GetEntryType sur un handle IFileSystem en lui transmettant un chemin contenant la séquence /... La fonction Path::Normalize copie alors la chaîne dans un tampon temporaire de 0x301 octets sur le tas sans vérifier sa longueur réelle, générant un dépassement de tampon (buffer overflow) qui corrompt un objet BufferedStorage voisin.
  3. L’exécution de code natif via ldr et ro : une fois muni d’une lecture et d’une écriture arbitraires dans fs, l’exploit force l’identifiant de processus (PID) enregistré de SmileBASIC à 1 pour débloquer les droits complets (FullPermission). Il intercepte ensuite le chargeur système ldr lors de l’ouverture d’un conteneur ExeFS pour substituer à la volée le binaire exécutable tout en conservant le certificat signé main.npdm du module ro, ce qui permet enfin de modifier directement le code exécutable de fs en mémoire vive.

Pourquoi cet exploit tethered n’est pas encore un Custom Firmware complet

Malgré la prouesse technique, ns2jb comporte des limites importantes qu’il faut garder à l’esprit. Son caractère tethered signifie que la modification n’est pas persistante : à chaque extinction complète ou redémarrage de la Nintendo Switch 2, la mémoire vive est purgée et la console repart dans son état d’origine, obligeant à relancer toute la procédure via SmileBASIC 4.

Il ne s’agit donc pas encore d’un Custom Firmware (CFW) permanent comparable à Atmosphère sur la première Switch, ni d’un outil conçu pour le piratage de jeux commerciaux. Nintendo ayant par ailleurs la possibilité de retirer SmileBASIC 4 de la boutique eShop ou de corriger le dépassement de tampon de Path::Normalize dans une prochaine mise à jour système au-delà de la version 23.0.1, Sammy Hajhamid étudie déjà la faisabilité d’un portage de la faille fs directement dans le navigateur WebKit via une attaque manipulant uniquement les données.

Mon regard

Voir tomber le firmware 23.0.1 de la Nintendo Switch 2 sans la moindre puce soudée rappelle immédiatement l’époque dorée des exploits logiques sur 3DS et sur la première génération de Switch. Le détail le plus marquant reste sans doute ce bricolage génial où un simple interrupteur connecté SwitchBot et deux boîtiers JetKVM permettent à un modèle de langage d’encaisser les crashs en boucle jusqu’à trouver la faille dans SmileBASIC 4. Pour les joueurs attachés à la préservation de leurs sauvegardes locales et au modding créatif comme sur Mario Kart World, c’est une première avancée majeure, même si Nintendo ne tardera évidemment pas à déployer un correctif firmware et à surveiller de très près la page eShop de SmileBASIC 4.

Rejoignez le QG sur Discord
Venez débattre de cette actu, partager votre setup PC/console ou estimer vos jeux rétro avec la rédaction et la communauté !
Rejoindre le Discord →

Retrouvez Pro-Gamer en priorité sur Google

Ajoutez pro-gamer.fr à vos sources préférées pour retrouver nos guides et actus directement dans votre flux Google Discover et vos résultats de recherche.

Chaya "Chayane"
Rédigé par Chaya "Chayane"
🧠 Rédactrice Tech & IA 🗽 New York & Montréal

Américaine installée dans la périphérie de New York, Chaya « Chayane » a passé 5 ans à Montréal pour ses études d'ingénierie logicielle avant de revenir dans sa région natale. Développeuse Full-Stack et chercheuse en architectures de Deep Learning et d'IA, elle explore les réseaux neuronaux et l'optimisation algorithmique tout en concevant les outils de Retrocharting et Gamescharting aux côtés de Grimtag. Gamer depuis plus de 20 ans, collectionneuse passionnée de l'univers Nintendo et de la saga The Legend of Zelda, elle a arpenté Azeroth sur World of Warcraft avant de mettre son expertise technique au service de l'analyse vidéoludique.

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.