Уразлівасці ў эталоннай рэалізацыі TPM 2.0, якія дазваляюць атрымаць доступ да дадзеных у крипточипе

У кодзе з эталоннай рэалізацыяй спецыфікацыі TPM 2.0 (Trusted Platform Module) выяўлены ўразлівасці (CVE-2023-1017, CVE-2023-1018), якія прыводзяць да запісу ці чытанню дадзеных за мяжой вылучанага буфера. Атака на рэалізацыі крыптапрацэсараў, выкарыстоўвалых уразлівы код, можа прывесці да вымання або перазапісу якая захоўваецца на боку чыпа інфармацыі, такі як крыптаграфічныя ключы. Магчымасць перазапісу дадзеных у прашыўцы TPM можа быць скарыстана атакавалым для арганізацыі выканання свайго кода ў кантэксце TPM, што, напрыклад, можа быць скарыстана для рэалізацыі бэкдараў, якія працуюць на боку TPM і не вызначаных з аперацыйнай сістэмы.

Уразлівасці выкліканыя некарэктнай праверкай памеру параметраў функцыі CryptParameterDecryption(), якая дапускае запіс або чытанне двух байтаў за мяжой буфера, які перадаецца ў функцыю ExecuteCommand() і ўтрымоўвальнага каманду TPM2.0. У залежнасці ад рэалізацыі прашыўкі перазапісвальныя два байта могуць пашкодзіць як невыкарыстоўваную памяць, так і дадзеныя ці паказальнікі ў стэку.

Эксплуатацыя ўразлівасці ажыццяўляецца праз адпраўку TPM-модулю спецыяльна аформленых каманд (атакуючы павінен мець доступ да інтэрфейсу TPM). Праблемы ліквідаваны ў выпушчаным у студзені абнаўленні спецыфікацыі TPM 2.0 (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Уразлівасці таксама схільная адчыненая бібліятэка libtpms, ужывальная для праграмнай эмуляцыі TPM-модуляў і інтэграцыі падтрымкі TPM у гіпервізары. Уразлівасць ухіленая ў выпуску libtpms 0.9.6.

Крыніца: opennet.ru

Дадаць каментар