漏洞概述 该漏洞涉及从 API 响应中剥离敏感凭据。具体来说, API 被设计为不通过用户视图进行过滤,因此任何授权客户端都可以请求任意 ID 的用户数据,包括密码哈希、明文 TOTP 种子、会话令牌和密码重置令牌。这可能导致离线破解、2FA 绕过和会话劫持等安全问题。 影响范围 受影响的用户视图:多个用户视图(如评论作者、分配者、头像等)依赖于 查找,因此它们依赖于 API。 API 调用:任何授权客户端都可以通过 API 请求任意 ID 的用户数据。 安全风险:攻击者可以利用此漏洞获取敏感信息,进行离线破解、2FA 绕过和会话劫持。 修复方案 1. 剥离敏感字段: - 在 API 响应中,剥离以下敏感字段: 、 、 、 、 、 、 。 - 使用 函数在返回用户数据前剥离这些字段。 2. 直接读取完整行: - 在 和 方法中,直接从仓库读取完整行,而不是使用 API。 - 确保在 方法中重建会话,使用完整行数据。 3. 更新测试: - 更新相关测试用例,确保 API 不再返回敏感字段。 - 验证 方法能够正确处理完整行数据。 POC 代码 总结 该漏洞通过 API 返回敏感用户数据,存在严重的安全风险。修复方案包括在 API 响应中剥离敏感字段,并在关键方法中直接读取完整行数据,同时更新相关测试用例以确保修复效果。