Ευπάθειες στην υλοποίηση αναφοράς TPM 2.0 που επιτρέπουν την πρόσβαση σε δεδομένα στο κρυπτοτσιπ

Στον κώδικα με την υλοποίηση αναφοράς της προδιαγραφής TPM 2.0 (Trusted Platform Module), εντοπίστηκαν τρωτά σημεία (CVE-2023-1017, CVE-2023-1018) που οδηγούν σε εγγραφή ή ανάγνωση δεδομένων πέρα ​​από τα όρια του εκχωρημένου buffer. Μια επίθεση σε υλοποιήσεις κρυπτοεπεξεργαστή χρησιμοποιώντας ευάλωτο κώδικα θα μπορούσε να έχει ως αποτέλεσμα την εξαγωγή ή την αντικατάσταση αποθηκευμένων πληροφοριών στο τσιπ, όπως κρυπτογραφικά κλειδιά. Η δυνατότητα αντικατάστασης δεδομένων στο υλικολογισμικό TPM μπορεί να χρησιμοποιηθεί από έναν εισβολέα για να οργανώσει την εκτέλεση του κώδικά του στο πλαίσιο του TPM, το οποίο, για παράδειγμα, μπορεί να χρησιμοποιηθεί για την υλοποίηση backdoors που λειτουργούν στην πλευρά του TPM και δεν ανιχνεύονται από το λειτουργικό σύστημα.

Τα τρωτά σημεία προκαλούνται από εσφαλμένη επαλήθευση του μεγέθους των παραμέτρων της συνάρτησης CryptParameterDecryption(), η οποία επιτρέπει την εγγραφή ή την ανάγνωση δύο byte πέρα ​​από το όριο του buffer που μεταβιβάζεται στη συνάρτηση ExecuteCommand() και περιέχει την εντολή TPM2.0. Ανάλογα με την εφαρμογή του υλικολογισμικού, τα δύο byte που αντικαθίστανται μπορεί να καταστρέψουν τόσο τη μνήμη που δεν χρησιμοποιείται όσο και τα δεδομένα ή τους δείκτες στη στοίβα.

Η εκμετάλλευση της ευπάθειας γίνεται με την αποστολή ειδικά σχεδιασμένων εντολών στη μονάδα TPM (ο εισβολέας πρέπει να έχει πρόσβαση στη διεπαφή TPM). Τα ζητήματα επιλύθηκαν στην ενημερωμένη έκδοση προδιαγραφών TPM 2.0 που κυκλοφόρησε τον Ιανουάριο (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Η ανοιχτή βιβλιοθήκη libtpms, που χρησιμοποιείται για την εξομοίωση λογισμικού των μονάδων TPM και την ενσωμάτωση της υποστήριξης TPM σε hypervisors, είναι επίσης ευάλωτη. Η ευπάθεια διορθώθηκε στην έκδοση libtpms 0.9.6.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο