漏洞概述 标题: fix!: reject OIDC login when email_verified claim is non-bool or absent #25713 问题描述: OIDC回调检查 时,通过Go类型断言 。当IDP返回的声明为字符串(如"false")、数字或完全省略时,断言会静默失败,导致邮箱被隐式视为已验证。 影响范围: 多个真实IDP(SAML到OIDC桥接器、某些Azure AD B2C配置)返回字符串类型的布尔值,使得此问题在实际操作中可达。 修复方案 代码修改: - 添加 函数来处理bool、string("true"/"false"/"t"/"f"通过 )、float64、json.Number和int/int64变体。 - 重写检查以失败关闭:缺失的声明、未识别的类型或任何非空值都被视为未验证并被拒绝。 - 现有的 配置选项作为逃生舱口保留。 POC代码 其他信息 审查历史: 包含详细的审查历史和反馈,确保修复方案的有效性和安全性。 合并状态: 该修复已被合并到主分支,并标记为已解决。