漏洞概述 CVE ID: CVE-2026-21621 标题: OAuth client_credentials 流程中的不当范围强制实施允许只读 API 密钥提升为完全访问权限 (Improper Scope Enforcement in OAuth client_credentials Flow Allows Read-Only API Key to Escalate to Full Access) CVSS 4.0 评分: 7 (HIGH) 描述: 在 (Elixir HexpmWeb.API.OAuthController 模块) 中存在不正确的授权漏洞。当通过 OAuth client_credentials grant 交换只读 API 密钥时,资源限定符(resource qualifier)被忽略。生成的 JWT 接收到了宽泛的 'api' 范围,而不是预期的 'api:read' 范围。因此,该令牌被视为具有完全 API 访问权限。 攻击场景: 如果攻击者能够获得受害者的只读 API 密钥和有效的 2FA (TOTP) 代码,他们可以使用不正确的范围 JWT 创建一个新的完全访问 API 密钥,该密钥默认不过期,并可以执行写操作(如发布、撤回或修改包)。 受影响文件: 和 。 影响范围 模块: 源文件: 受影响版本/Commit: Git Commit: (具体受影响版本为 ) Date Version: (具体受影响版本为 ) 修复方案 变通方法 (Workarounds): 如果怀疑泄露,立即撤销并重新发布受影响的 API 密钥。 避免在高风险环境中依赖只读 API 密钥作为严格的安全边界。 密切监控审计日志,关注意外的 API 密钥创建事件。 实施强 2FA 并小心保护 TOTP 种子。 注意: 在服务器端范围验证逻辑修复之前,没有完整的缓解措施。 修复版本: 升级到修复版本 或日期版本 。 POC/利用代码 页面中未直接提供可执行的 POC 代码块。