CVE-2026-41677rust-openssl 是 Rust 语言的 OpenSSL 绑定库。在 0.9.0 至 0.10.78 之前的版本中,`*_from_pem_callback` API 存在安全漏洞。该 API 未验证用户回调函数返回的长度,若回调返回的数据长度超过预设缓冲区,会导致特定版本的 OpenSSL 发生缓冲区越界读取。尽管 OpenSSL 3.x 不受影响,但在旧版本上可能导致敏感信息泄露或服务拒绝。该问题已在 0.10.78 版本中修复。
该漏洞源于 rust-openssl 在处理 PEM 回调时的逻辑缺陷。当开发者使用 `*_from_pem_callback` 系列函数加载加密密钥时,需传入一个回调函数以提供密码。在受影响版本中,库直接使用了回调返回的长度值,而未检查该值是否超出了分配给 OpenSSL 的缓冲区大小。攻击者若能控制回调逻辑(例如在特定沙箱或插件环境中),可构造一个超长的返回值。当 OpenSSL(非 3.x 版本)尝试读取该数据时,会读取缓冲区之外的内存区域。这种越界读取可能导致堆栈信息泄露,破坏机密性;或者导致段错误,破坏可用性。