CVE-2026-27459pyOpenSSL是一个Python库,作为OpenSSL库的Python封装。2026年3月披露的安全漏洞影响pyOpenSSL 22.0.0至26.0.0之前的版本。漏洞源于set_cookie_generate_callback函数存在缓冲区溢出问题:当用户提供的回调函数返回的cookie值超过256字节时,pyOpenSSL会溢出OpenSSL提供的固定大小缓冲区。由于pyOpenSSL广泛用于Python应用程序中处理SSL/TLS通信,此漏洞可被远程攻击者利用,在目标系统上执行任意代码或造成应用程序崩溃。该漏洞无需认证即可利用,且CVSS评分高达9.8,属于极其严重的远程代码执行漏洞。pyOpenSSL项目方已在26.0.0版本中修复了此问题,新增了对过长cookie值的校验拒绝机制。
漏洞根源在于pyOpenSSL的Cookie处理机制。OpenSSL库为cookie生成回调函数设置了了一个固定256字节的输出缓冲区。当pyOpenSSL的set_cookie_generate_callback设置的Python回调函数返回超过256字节的cookie值时,该值会被直接写入OpenSSL的缓冲区,导致缓冲区溢出。攻击者可通过构造恶意回调函数或中间人攻击场景,触发超长cookie值生成,从而覆盖相邻内存区域。在Python层面,回调函数签名通常为lambda或自定义函数,返回字符串类型。由于缺乏边界检查,攻击者可以精确控制溢出数据,可能实现代码执行。从攻击向量看,攻击者需要能够影响或控制cookie生成回调的返回值,这通常出现在使用pyOpenSSL构建HTTPS服务器或进行SSL/TLS握手的应用场景中。修复方案在26.0.0版本中增加了cookie长度校验,超过256字节的cookie值会被直接拒绝并抛出异常。