安全之安全(security²)博客目录导读
ATF(TF-A)安全通告汇总
目录
一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564)
二、 CVE-2017-7564
一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564)
Title | 启用安全自托管侵入式调试接口,可允许非安全世界引发安全世界panic |
---|---|
CVE ID | CVE-2017-7564 |
Date | 02 Feb 2017 |
Versions Affected | All versions up to v1.3 |
Configurations Affected | All |
Impact | 拒绝服务攻击Denial of Service(安全世界panic) |
Fix Version | 15 Feb 2017 Pull Request #841 |
Credit | ARM |
二、 CVE-2017-7564
MDCR_EL3.SDD位控制AArch64安全自托管侵入式调试使能。默认情况下,当前版本的ARM可信固件(TF-A)的BL1和BL31镜像在早期入口点代码中无条件地将该位设置为0,这允许从安全世界调试异常。这可以在el3_arch_init_common AArch64 macro的实现中看到。鉴于TF-A目前不支持此特性(例如,通过保存和恢复适当的调试寄存器),这可能允许普通世界攻击者在安全世界中引起panic。
应该将MDCR_EL3.SDD位设置为1,以禁用安全世界调试异常。
早期版本的TF-A(在commit 495f3d3之前)没有设置这个位。由于该位在架构上复位值未知,因此早期版本可能会也可能不会有相同的问题,具体取决于平台。
类似的问题也适用于MDCR_EL3.SPD32位,它控制AArch32安全自托管侵入式调试使能。TF-A将这些位配置为0b00,这意味着身份验证接口启用了来自Secure EL1的调试异常。因此,这个问题只存在于AArch32 Secure EL1代码中,当身份验证接口启用了安全特权侵入式调试时,此时设备很容易受到其他更严重的攻击。
但是,由于TF-A不支持处理调试异常,因此MDCR_EL3.SPD32位应该配置为0b10来禁用AArch32 Secure EL1的调试异常。
最后,这个问题也适用于使用TF SP_MIN镜像或集成等效于el3_arch_init_common宏的AArch32 equivalent平台。这里受影响的位是SDCR.SPD,也应该设置为0b10而不是0b00。
参考:9.2. Advisory TFV-2 (CVE-2017-7564) — Trusted Firmware-A 2.9.0 documentation