二进制漏洞分析-31.华为TrustZone CHINADRM_KEY_TA漏洞
2024-1-2 07:14:16 Author: 安全狗的自我修养(查看原文) 阅读量:0 收藏

  •  

  • -5.(SMC MNTN OOB 访)

  • -10.TrustZone TEE_SERVICE_VOICE_REC

  • -19.TrustZone TCIS

  • -21.TrustZone TALoader

  • -22.TrustZone TA_uDFingerPrint

  • -23.TrustZone TA_SensorInfo

  • -24.TrustZone TA_HuaweiWallet

  • -25.TrustZone TA_SignTool OOB Read

  • -26.TrustZone IfaaKey_TA

  • -27.TrustZone Ifaa

  • -29.Huawei TrustZone HuaweiNfcActiveCard 

  • 二进制漏洞分析-30.华为TrustZone Huawei_TSS_TA漏洞

华为TrustZone CHINADRM_KEY_TA漏洞

此通报包含有关以下漏洞的信息:

  • HWPSIRT-2021-03315 TEE_Param TZ_CDRM_KeyPrivateKeyDecrypt中的输出缓冲区溢出

TEE_Param输出缓冲区溢出TZ_CDRM_KeyPrivateKeyDecrypt

在函数中,作为输出缓冲区的 third 的大小被强制设置为 0x100。该函数不检查输出缓冲区的实际大小是否大于 0x100,只检查它是否小于 0x500000。TZ_CDRM_KeyPrivateKeyDecryptTEE_Param

int TZ_CDRM_KeyPrivateKeyDecrypt(
int ival0_a,
int ival0_b,
void *ibuf1_addr,
size_t ibuf1_size,
void *ibuf2_addr,
size_t ibuf2_size,
void *obuf3_addr,
size_t *obuf3_size_p)
{
// ...
if (*obuf3_size_p > 0x500000) { /* ... */ }
// ...
CDRM_KeyGetKeyNode(ival0_a, &cdrmNode);
// ...
if (((ival0_b == 4 || ival0_b == 5) && cdrmNode->prvKeyBuf_len > 0xC0) {
*obuf3_size_p = 0x100;
return CDRM_KeyRsaPrivateKeyDecrypt(
cdrmNode,
ibuf1_addr,
ibuf2_addr,
ibuf2_size,
obuf3_addr,
obuf3_size_p);
}
// ...
}

因此,它调用的函数可能会溢出输出缓冲区。CDRM_KeyRsaPrivateKeyDecrypt

int CDRM_KeyRsaPrivateKeyDecrypt(
CDRM_KeyNode_t *cdrmNode,
void *ibuf1_addr,
void *ibuf2_addr,
size_t ibuf2_size,
void *obuf3_addr,
size_t *obuf3_size_p)
{
// ...
CDRMR_Crypto_RsaDecrypt(4, key, ibuf2_addr, ibuf2_size, obuf3_addr, obuf3_size_p);
// ...
}
int CDRMR_Crypto_RsaDecrypt(
int a1,
void *key,
const void *srcData,
uint32_t srcLen,
void *destData,
uint32_t *destLen_p)
{
// ...
TEE_AsymmetricDecrypt(operation, &attr, 1, srcData, srcLen, destData, &destLen);
// ...
}

由于每个内存页都位于自己的一组内存页上,因此不会产生明显的影响(例如崩溃)。因此,我们没有尝试触发该漏洞。TEE_Param

受影响的设备

我们已验证该漏洞是否影响了以下设备:

  • 麒麟990:P40 专业版 (ELS)

请注意,其他型号可能已受到影响。

补丁

名字严厉CVE漏洞补丁
TEE_Param输出缓冲区溢出TZ_CDRM_KeyPrivateKeyDecrypt不适用固定

时间线

  • 14年2021月<>日 - 向华为PSIRT发送漏洞报告。

  • 12年2022月<>日 - 华为PSIRT确认该漏洞报告。

  • 从 30 年 2022 月 19 日至 2023 年 <> 月 <> 日 - 我们定期交换有关公告发布的信息。


文章来源: http://mp.weixin.qq.com/s?__biz=MzkwOTE5MDY5NA==&mid=2247490941&idx=1&sn=af6029e4d803d733fc6037d76b501563&chksm=c0eae294e1b19caec3f2545e651130171b75a3b45c636abaac0972095951ec749a0175921a76&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh