二进制漏洞分析-31.华为TrustZone CHINADRM_KEY_TA漏洞
二进制漏洞分析-5.华为安全监控漏洞(SMC MNTN OOB 访问)二进制漏洞分析-10.华为TrustZone TEE_SERVICE_VOICE_REC漏洞二进制漏洞分析-19.华为Trust 2024-1-2 07:14:16 Author: 安全狗的自我修养(查看原文) 阅读量:57 收藏

  •  

  • 二进制漏洞分析-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