Si elles sont exploitées, ces failles peuvent permettre aux attaquants d'obtenir un accès non autorisé à des informations sensibles ou de causer des problèmes en général.
Il a été récemment annoncé que deux vulnérabilités ( déjà répertoriées sous CVE-2023-1017, CVE-2023-1018) ont été identifiées dans le code de l'implémentation de référence de la spécification TPM 2.0 (Trusted Platform Module).
Les failles détectées sont importantes, car elles permettent d'écrire ou de lire des données en dehors des limites de la mémoire tampon allouée . Une attaque ciblant les implémentations de cryptoprocesseurs à l'aide de code vulnérable pourrait entraîner l'extraction ou l'écrasement d'informations stockées sur la puce, telles que les clés cryptographiques.
Un attaquant ayant accès à une interface de commande TPM peut envoyer des commandes conçues de manière malveillante au module et déclencher ces vulnérabilités. Cela permet un accès en lecture seule aux données sensibles ou l'écrasement des données normalement protégées qui ne sont disponibles que pour le TPM (par exemple, les clés cryptographiques).
Il est mentionné qu'un attaquant peut utiliser la possibilité d'écraser des données dans le firmware TPM pour orchestrer l'exécution de son code dans le contexte TPM, ce qui, par exemple, peut être utilisé pour implémenter des portes dérobées qui fonctionnent côté TPM et ne sont pas détectées par le système d'exploitation.
Pour ceux qui ne connaissent pas TPM (Trusted Platform Module), vous devez savoir qu'il s'agit d'une solution matérielle qui fournit des fonctions cryptographiques puissantes aux systèmes d'exploitation informatiques modernes, ce qui la rend résistante à la falsification.
Un attaquant local authentifié pourrait envoyer des commandes malveillantes à un TPM vulnérable qui autorise l'accès à des données sensibles. Dans certains cas, l'attaquant peut également écraser les données protégées dans le micrologiciel du TPM. Cela peut provoquer un blocage ou l'exécution de code arbitraire dans le TPM. Étant donné que la charge utile de l'attaquant s'exécute à l'intérieur du TPM, elle peut ne pas être détectée par d'autres composants sur l'appareil cible.
Alors que le cloud computing et la virtualisation sont devenus plus populaires ces dernières années, les implémentations TPM basées sur des logiciels ont également gagné en popularité. Le TPM peut être implémenté en tant que TPM discret, intégré ou micrologiciel sous sa forme matérielle. Les TPM virtuels existent sous forme d'hyperviseur ou dans une implémentation de TPM purement logicielle, par exemple, swtpm.
Concernant les vulnérabilités détectées, il est indiqué qu'elles sont dues à un contrôle de taille incorrect des paramètres de la fonction CryptParameterDecryption(), ce qui permet d'écrire ou de lire deux octets en dehors du tampon passé à la fonction ExecuteCommand() et contenant la commande TPM 2.0. D'après l'implémentation du firmware, l'écriture de deux octets supplémentaires peut corrompre la mémoire inutilisée ainsi que les données ou les 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).
Actuellement, les problèmes ont déjà été résolus en publiant les versions de mise à jour de la spécification TPM 2.0 publiées en janvier (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).
De plus, il a été signalé que la bibliothèque open source libtpms, utilisée pour émuler par programmation les modules TPM et intégrer la prise en charge TPM aux hyperviseurs, est également affectée par cette vulnérabilité. Toutefois, il est important de noter que cette vulnérabilité a été corrigée dans la version 0.9.6 de libtpms ; il est donc conseillé aux utilisateurs d'une version antérieure de mettre à jour leur bibliothèque dès que possible.
Concernant la solution à ces failles, TCG (Trusted Computing Group) a publié une mise à jour de ses errata pour la spécification de la bibliothèque TPM2.0 avec des instructions pour remédier à ces vulnérabilités. Pour garantir la sécurité de leurs systèmes, les utilisateurs doivent appliquer dès que possible les mises à jour fournies par les fabricants de matériel et de logiciels via leur chaîne d'approvisionnement.
Enfin, si vous souhaitez en savoir plus, vous trouverez les détails en suivant ce lien.