jbp.io :: CVE-2024-5535: `SSL_select_next_proto` 缓冲区溢出读取

主要观点:2011 年 OpenSSL 存在一个漏洞,导致某些代码会静默发送客户端堆的最多 255 字节数据到服务器,影响 Python <= 3.9 和 Node <= 9 等,Android 受影响至 2014 年,多个版本的 OpenSSL 受影响,包括 1.0.x、1.1.x、3.x 等,BoringSSL 已修复,LibreSSL 虽有该漏洞但已移除 NPN 支持。
关键信息

  • 漏洞代码示例,如在 Node 和 Python 中的相关代码。
  • 受影响的版本情况。
  • 发现漏洞的时间线,包括 2011 年引入、2014 年 Android 采取 workaround 等。
  • 结论指出各种审核等未及时修复漏洞,已知受影响情况可能只是历史的,且未完全涵盖。
  • 提及发现漏洞的过程及相关人员致谢。
  • 报告中关于SSL_select_next_proto函数的问题及最小重现代码。
  • 阐述漏洞在不同场景下的影响,如服务器和客户端的 ALPN/NPN 回调中。
    重要细节
  • NPN 是 ALPN 的前身且 2012 年已被弃用,Node.js 10 及以后版本移除 NPN 支持,Python 3.10 及以后版本也移除了 NPN 支持。
  • 不同时间节点的具体事件,如报告给 OpenSSL 项目等的时间。
  • 实际代码中展示 Python 3.9 会导致发送堆数据到服务器的情况。
阅读 15
0 条评论