漏洞概述 该漏洞涉及在API查询和仓库访问检查中,公共令牌(public-only tokens)的过滤不统一。具体表现为: 公共令牌可以访问私有结果,如某些列表搜索端点。 通过ID基查找访问仓库数据。 某些认证自路由未能一致地应用公共令牌限制。 影响范围 API端点:某些端点返回私有资源而非过滤它们。 认证自路由:某些认证自路由完全跳过了公共令牌执行。 路由家族:某些路由家族与其规范的公共/私有对应物行为不同。 修复方案 1. 共享公共令牌过滤助手: - 添加了 助手到选项结构,用于搜索列表API,确保调用者可以统一应用公共令牌过滤。 - 这些助手现在被以下功能使用: - 用户搜索 - 组织列表 - 仓库搜索和用户仓库列表 - 已观看/已加星标的仓库列表 - 活动流查询 2. 仓库访问加固: - 在 中添加了 方法,用于拒绝公共令牌对私有仓库的访问,即使仓库是通过间接方式解析的。 - 保护以下情况: - - 基于仓库分配的查找 - 之前仅依赖路由级别上下文的仓库范围公共令牌检查 3. 自路由加固: - 认证 路由组现在设置 ,在公共令牌检查之前,并一致应用 。 - 对于本质上私有表面的端点,此PR明确通过 拒绝公共令牌。 - 包括以下代表性自路由: - - - - - - - - - - - - - - - - 认证自follow/unfollow突变 - 私有自仓库创建 4. 其他路由修复: - 收紧了以下公共令牌处理: - 及相关线程端点 - - 用户加星标的仓库端点 - 已观看的仓库端点 - 用户/组织活动流 测试 添加了更新后的集成覆盖: - 公共令牌过滤: - 用户仓库 - 按ID访问仓库 - 活动流 - 已观看/已加星标的仓库 - 用户组织 - 公共令牌拒绝: - 通知 - 认证自 私有表面 代表性自回归覆盖现在包括: - 个人资料/设置 - 电子邮件 - SSH密钥 - GPG密钥和验证令牌端点 - OAuth应用程序 - 操作/秘密/变量/运行器 - 钩子 - 头像 - 时间/时间戳 - 订阅/团队 - 块 - 关注/取消关注 - 自仓库创建/列表过滤 POC代码 页面中未包含具体的POC代码或利用代码。