漏洞概述
根据GitHub安全公告数据库的信息,Phoenix框架在1.6.14之前的版本中存在一个被标记为高风险的安全漏洞,其CVE编号为CVE-2022-42975[citation:1]。
该漏洞的根源在于框架源代码中的 socket/transport.ex 文件错误地处理了check_origin配置项的通配符规则[citation:1][citation:2]。check_origin是Phoenix框架中用于验证WebSocket等连接请求来源(Origin)是否合法的安全机制,通配符处理不当可能削弱其防护效果。
需要特别说明的是,默认情况下,使用Phoenix LiveView的应用不受此漏洞影响,因为LiveView自身配有CSRF令牌机制,提供了额外的安全层。
技术细节与影响
- 漏洞文件:
socket/transport.ex - 根本原因:
check_origin通配符处理逻辑存在缺陷[citation:1][citation:2]。 - CVSS 3.1评分:7.5(高风险)[citation:1]。
- 影响版本:所有低于 1.6.14 的Phoenix框架版本[citation:1]。
- 已修复版本:1.6.14 及更高版本[citation:1]。
相关的通用缺陷枚举(CWE)包括:
- CWE-346:来源验证错误 - 产品未能正确验证数据或通信的来源是否有效[citation:1]。
- CWE-863:不正确的授权 - 产品在执行授权检查时存在错误[citation:1]。
解决方案与建议
官方的修复方案是明确的:将所有受影响的Phoenix项目升级到版本 1.6.14 或更高版本[citation:1][citation:2]。
修复该漏洞的官方代码提交位于:phoenixframework/phoenix@6e7185b[citation:1]。用户可以通过查阅Phoenix 1.6.14版本的官方变更日志来了解更多更新详情[citation:1]。