当前位置: 首页 > 科技观察

严重的OpenSSL漏洞可用于更改应用程序数据

时间:2023-03-19 13:49:52 科技观察

OpenSSLProject本周正式发布了OpenSSL1.1.1l,它修复了一个高危漏洞,该漏洞可能允许攻击者更改应用程序崩溃的行为。该漏洞的CVEID为CVE-2021-3711,被描述为与SM2解密相关的缓冲区溢出漏洞。要解密SM2加密的数据,应用程序通常调用API函数EVP_PKEY_decrypt()。通常,应用程序会调用此函数两次。第一次进入时,“out”参数可以为NULL,而在退出时,“outlen”参数填充为保存解密明文所需的缓冲区大小。然后应用程序可以分配足够大的缓冲区并再次调用EVP_PKEY_decrypt(),但这次为“out”参数传递一个非NULL值。SM2解密代码实现中的此漏洞意味着第一次调用EVP_PKEY_decrypt()并计算保存明文所需的缓冲区大小可能小于第二次调用所需的实际大小。因此,当应用程序第二次调用EVP_PKEY_decrypt()时,可能会导致缓冲区溢出。能够向应用程序提供SM2内容进行解密的恶意攻击者可以导致攻击者选择的数据溢出缓冲区多达62字节,从而更改缓冲区后面的其他数据的内容。进一步改变应用程序行为或导致应用程序崩溃。OpenSSL项目的MattCaswell解释说:“应用程序可以在内存中拥有任何类型的数据(财务数据、凭证等),如果攻击者可以更改它,后果将是可怕的。”安全研究员JohnOuyang表示,该安全漏洞影响1.1.1之前的OpenSSL版本。除了上述高危漏洞外,OpenSSL还报告了一个CVEID为CVE-2021-3712的中危漏洞,可被利用进行拒绝服务(DoS)攻击。随着1.1.1l版的发布,这个问题也得到了修复。迄今为止,已发现五个与OpenSSL相关的漏洞,其中两个被评为高严重性。2020年全年,OpenSSL只发现了三个漏洞。