CVE-2026-41676rust-openssl库在OpenSSL 1.1.x环境下存在严重缓冲区溢出漏洞。由于未正确校验密钥派生操作的输出缓冲区大小,受影响版本的Deriver::derive函数在处理X25519等算法时可能写入过量数据,导致堆或栈溢出,进而引发拒绝服务或潜在的代码执行风险。
该漏洞位于rust-openssl的Deriver::derive及相关函数中。在0.9.27至0.10.78之前的版本,这些函数将缓冲区长度传递给OpenSSL的EVP_PKEY_derive API。然而,OpenSSL 1.1.x中的X25519、X448、DH和HKDF-extract实现会忽略传入的长度限制,总是写入完整的密钥长度(如32或56字节)。如果Rust代码提供的切片小于实际输出大小,OpenSSL会越过边界写入数据。尽管Rust具有内存安全特性,但该库作为unsafe代码的封装,使得上层Safe Rust代码也能触发溢出。OpenSSL 3.x版本已修复此行为,因此该漏洞仅影响链接OpenSSL 1.1.x的应用程序。