关键漏洞信息 漏洞概述 漏洞类型: 堆缓冲区溢出 受影响的包: CryptoLib 受影响的版本: <= v1.4.2 修复版本: v1.4.3 CVE ID: CVE-2026-22697 漏洞描述 摘要: CryptoLib的KMC密码服务集成在解码Base64编码的ciphertext/cleartext字段时容易受到堆缓冲区溢出的影响。解码目标缓冲区大小基于预期的输出长度(len_data_out),但Base64解码器根据实际的Base64输入长度写入输出,并不强制任何目标大小限制。KMC JSON响应中的过大Base64字符串会导致堆上的越界写入,导致进程崩溃并可能在某些条件下执行代码。 受影响的组件: - 项目: CryptoLib - 版本: 1.4.1 - 文件/区域: - (KMC JSON解析和Base64解码调用站点) - (Base64解码实现) 受影响的配置: - KMC后端启用 ( ) - KMC密码服务配置为加密/解密请求使用KMC,非KMC构建不受此特定路径的影响。 漏洞细节 堆分配: KMC响应处理程序使用源自len_data_out(预期的密文/明文长度)的公式分配解码缓冲区,例如: 问题: base64Decode解码整个Base64字符串,并在不知道(或未检查)缓冲区最大大小的情况下将全部解码输出写入提供的缓冲区。因此,如果Base64输入大于预期,base64Decode将写入分配的堆缓冲区之外。 影响 可靠的服务拒绝:通过堆腐败和崩溃。 潜在的远程代码执行,取决于分配器的行为、平台加固和利用条件。 风险放大: 如果应用程序可以被诱导接受恶意KMC响应(例如,被攻破的KMC端点,或能够模拟端点的网络攻击者在弱化的TLS验证设置下)。