Vulnérabilités dans l'implémentation de référence de TPM 2.0 qui permettent d'accéder aux données de la puce cryptographique

Dans le code avec l'implémentation de référence de la spécification TPM 2.0 (Trusted Platform Module), des vulnérabilités ont été identifiées (CVE-2023-1017, CVE-2023-1018) qui conduisent à l'écriture ou à la lecture de données au-delà des limites du tampon alloué. Une attaque contre les implémentations de cryptoprocesseurs utilisant un code vulnérable pourrait entraîner l'extraction ou l'écrasement d'informations stockées sur la puce, telles que les clés cryptographiques. La possibilité d'écraser les données du firmware du TPM peut être utilisée par un attaquant pour organiser l'exécution de son code dans le contexte du TPM, qui, par exemple, peut être utilisé pour implémenter des portes dérobées qui fonctionnent du côté du TPM et ne sont pas détectées. par le système d'exploitation.

Les vulnérabilités sont causées par une vérification incorrecte de la taille des paramètres de la fonction CryptParameterDecryption(), qui permet d'écrire ou de lire deux octets au-delà de la limite du tampon passé à la fonction ExecuteCommand() et contenant la commande TPM2.0. En fonction de l'implémentation du micrologiciel, les deux octets écrasés peuvent corrompre à la fois la mémoire inutilisée et les données ou pointeurs sur la pile.

La vulnérabilité est exploitée en envoyant des commandes spécialement conçues au module TPM (l'attaquant doit avoir accès à l'interface TPM). Les problèmes ont été résolus dans la mise à jour de la spécification TPM 2.0 publiée en janvier (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

La bibliothèque ouverte libtpms, utilisée pour l'émulation logicielle des modules TPM et l'intégration du support TPM dans les hyperviseurs, est également vulnérable. La vulnérabilité a été corrigée dans la version libtpms 0.9.6.

Source: opennet.ru

Ajouter un commentaire