漏洞概述 在Perl扩展模块Crypt::OpenSSL::PKCS12的多个版本中发现了多个安全漏洞,包括空指针解引用、缓冲区溢出、整数溢出、长度感知密码处理不当等问题。 影响范围 版本:Crypt::OpenSSL::PKCS12 1.98及更早版本 具体漏洞: - 空指针解引用:在 函数中,当处理 分支时,如果属性为 ,会导致空指针解引用。 - 缓冲区溢出:在 函数中,当处理 或 属性时,如果长度超过 ,会导致整数溢出和缓冲区溢出。 - 整数溢出:在 函数中,当处理 或 属性时,如果长度超过 ,会导致整数溢出。 - 长度感知密码处理不当:在 和 函数中,如果密码包含嵌入的 字节,会导致潜在的安全问题。 修复方案 版本1.98: - 空指针解引用:在 函数中,对 分支进行空指针检查,并在 调用前增加对 返回值的空指针检查。 - 缓冲区溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 - 整数溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 - 长度感知密码处理不当:在 和 函数中,使用 保留完整密码字符串长度,而不是依赖 。 版本1.97: - 空指针解引用:在 函数中,确保 或 属性正确终止,避免未定义行为。 - 缓冲区溢出:在 编码中,确保证书DER字节正确包装在 中。 版本1.96: - 缓冲区溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 - 整数溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 版本1.95: - 空指针解引用:在 函数中,对 分支进行空指针检查,并在 调用前增加对 返回值的空指针检查。 - 缓冲区溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 - 整数溢出:在 函数中,对 和 属性的长度进行显式检查,避免整数溢出。 - 长度感知密码处理不当:在 和 函数中,使用 保留完整密码字符串长度,而不是依赖 。 POC代码或利用代码 页面中未提供具体的POC代码或利用代码。