Nintendo Switch : contournement de la vérification TLS via SKID dans ImportServerPki (corrigé en 20.2.0)
Source : billet de blog de Yannik Marchand. Contexte : analyse de l’implémentation TLS du sysmodule « ssl » de la Nintendo Switch (librairie NSS) et découverte d’un défaut de vérification permettant l’interception de trafic 🔒. Résumé technique : la vérification des certificats dans le callback SslAuthCertCb comporte un cas spécial pour les certificats importés via nn::ssl::Context::ImportServerPki. Lorsque le certificat reçu figure dans la liste « de confiance » du contexte, la signature n’est pas validée par NSS. La fonction CertificateStore::IsTrusted ne compare que le Subject Key Identifier (SKID) — une valeur contrôlable par un attaquant — au lieu de vérifier la chaîne et la signature. En forgeant un certificat auto-signé avec le même SKID qu’un certificat importé, un attaquant peut réussir une attaque de type man-in-the-middle (MITM) et usurper un serveur. ...