Phoenix 1.6.14 前版本 Origin 检查通配符处理漏洞详解

本文分析了 CVE-2022-42975 安全漏洞,该漏洞涉及 Phoenix 框架 1.6.14 之前版本在 `check_origin` 配置中错误处理通配符规则,可能导致跨站请求伪造攻击。文章详细说明了受影响版本、修复方式及相关技术背景。

CVE-2022-42975:Phoenix 框架 Origin 检查通配符处理漏洞

概述 CVE-2022-42975 是一个影响 Phoenix 框架(基于 Erlang/Elixir 的 Web 开发框架)的安全漏洞,在 1.6.14 之前版本中存在。该漏洞源于框架的 socket/transport.ex 文件中 check_origin 配置对通配符规则的处理不当,可能被攻击者利用进行跨站请求伪造(CSRF)攻击。

受影响版本

  • 受影响版本:Phoenix < 1.6.14
  • 已修复版本:Phoenix 1.6.14

漏洞详情 在 Phoenix 1.6.14 之前的版本中,check_origin 配置用于验证 WebSocket 和 Channel 连接来源的合法性。当配置中使用通配符(例如 "*.example.com")来匹配多个子域名时,框架未能正确实施匹配规则,导致验证逻辑可能被绕过。这使得恶意网站有可能伪造请求,与受害者的 Phoenix 应用建立未授权的连接。

技术背景

  • 漏洞文件socket/transport.ex
  • 根本原因:Origin 验证错误(CWE-346)与授权检查不正确(CWE-863)的结合。
  • 默认例外:基于 LiveView 构建的应用默认不受此漏洞影响,因为 LiveView 内置了 CSRF 令牌保护机制。

修复与参考

严重性评分

  • CVSS v3.1 评分: 7.5(高危)
  • 向量: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
    • 攻击向量(AV):网络
    • 攻击复杂度(AC):低
    • 所需权限(PR):无
    • 用户交互(UI):无
    • 影响范围(S):未改变
    • 机密性影响(C):无
    • 完整性影响(I):高
    • 可用性影响(A):无

相关标识

  • CVE ID: CVE-2022-42975
  • GHSA ID: GHSA-p8f7-22gq-m7j9

建议 所有使用 Phoenix 框架 1.6.14 之前版本的用户应立即升级至 1.6.14 或更高版本,以修补此安全漏洞。对于无法立即升级的环境,应审查并严格配置 check_origin 规则,避免依赖有问题的通配符匹配。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计