安全之安全(security2)博客目錄導讀
ATF(TF-A)安全通告匯總
目錄
一、ATF(TF-A)安全通告 TFV-5?(CVE-2017-15031)
二、CVE-2017-15031
一、ATF(TF-A)安全通告 TFV-5?(CVE-2017-15031)
Title | 未初始化或保存/恢復PMCR_EL0可能會泄露安全世界的時間信息 |
---|---|
CVE ID | CVE-2017-15031 |
Date | 02 Oct 2017, updated on 04 Nov 2019 |
Versions Affected | All, up to and including v2.1 |
Configurations Affected | All |
Impact | 泄露敏感的安全世界時間信息 |
Fix Version | Pull Request #1127?(merged on 18 October 2017) Commit e290a8fcbc?(merged on 23 August 2019) Commit c3e8b0be9b?(merged on 27 September 2019) |
Credit | Arm, Marek Bykowski |
二、CVE-2017-15031
????????PMCR_EL0(性能監視控制寄存器Performance Monitors Control Register)提供性能監視實現的詳細信息,包括實現的計數器數量,并配置和控制計數器。如果PMCR_EL0.DP位設置為零,在安全世界執行期間cycle counter周期計數器(當啟用時)仍計數,即使被調試信號禁止。
????????由于TF-A在非安全世界和安全世界之間切換時不會保存和恢復PMCR_EL0,因此非安全世界代碼可以設置PMCR_EL0.DP為零,從而導致安全世界時間信息的泄漏。當進入EL3和轉換到S-EL1時,應將此寄存器添加到保存/恢復寄存器列表中。
????????此外,PMCR_EL0.DP有一個架構上未知的復位值。由于TF-A未初始化此寄存器,因此至少在某些實現中,默認情況下PMCR_EL0.DP可能會被初始化為0。在安全上下文中,這個和其他具有架構未知復位值的位應該初始化為合理的默認值。
????????同樣的問題也存在于等效的AArch32寄存器PMCR中,AArch32中PMCR_EL0.DP在架構上復位值為0。
?????????注意:上面引用的起初pull request只修復了S-EL1的問題,EL3在后來的提交中修復了。
?
參考:9.5. Advisory TFV-5 (CVE-2017-15031) — Trusted Firmware-A 2.9.0 documentation