libtpms返回错误初始化向量漏洞CVE-2026-21444
libtpms 是一款开源的软件库是虚拟机 TPM 仿真的底层核心依赖,通过极简API与标准化实现,该库让虚拟机 / 容器轻松获得 TPM 能力。
一、基本情况
libtpms是一个提供可信平台模块软件模拟库,是虚拟化与云原生场景中TPM仿真的核心组件,广泛用于开发测试、云平台与嵌入式系统。
libtpms开源软件库提供 TPM(可信平台模块)1.2 与 TPM 2.0 完整软件仿真,核心用于虚拟化环境为虚拟机提供符合规范的 TPM 功能。

栋科技漏洞库关注到libtpms在版本0.10.0和0.10.1中存在漏洞,该漏洞现在已经被追踪为CVE-2026-21444,漏洞的CVSS 3.X评分为5.5。
二、漏洞分析
CVE-2026-21444漏洞是 libtpms 与 OpenSSL 3.x 的常用集成在使用某些对称密码时存在的一个与返回的初始化向量(IV)相关的漏洞。
漏洞与使用某些对称密码时返回初始化向量(IV)有关,其不是返回最后一个IV,而向调用者返回初始IV,削弱了后续加密和解密步骤。
这一漏洞对数据的保密性构成最高威胁,漏洞代码如下:
src/tpm2/crypto/openssl/Helpers.c
@@ -354,7 +354,7 @@ TPM_RC DoEVPGetIV(
{
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
OSSL_PARAM params[] = {
OSSL_PARAM_octet_ptr(OSSL_CIPHER_PARAM_UPDATED_IV, &iv, iv_len),
OSSL_PARAM_octet_string(OSSL_CIPHER_PARAM_UPDATED_IV, iv, iv_len),
OSSL_PARAM_END
};
if (EVP_CIPHER_CTX_get_params(ctx, params) != 1)
带有错误代码的补丁:d08b929
$ git tag --contains d08b929dede77bee05bd674d48c7a0548528ca9c
v0.10.0
v0.10.0-rc1
v0.10.1
三、POC概念验证
重现该行为/问题的步骤,包括在命令行上显示所有命令、所需的XML或JSON(如有必要)等:
这里的脚本可以用来显示原始IV和更新后的IV。更新后的IV必须与原始IV不同,但由于存在错误,它们是相同的
具体的代码如下:
管理员已设置登录后刷新可查看预期行为
iv.bin和newiv.bin必须包含不同的IV(初始化向量)。
对你期望发生的事情进行清晰简洁的描述。
四、影响范围
libtpms 0.10.0
libtpms 0.10.1
五、修复建议
libtpms > 0.10.0
libtpms >0.10.1
六、参考链接
管理员已设置登录后刷新可查看