跳至主要内容

关于代码库安全建议

您可以使用仓库安全公告私下讨论、修复和发布有关公共仓库中安全漏洞的信息。

任何对公共仓库拥有管理员权限的人员都可以创建安全公告。

任何对公共仓库拥有管理员权限的人员也对该仓库中的所有安全公告拥有管理员权限。拥有安全公告管理员权限的人员可以添加协作者,协作者对安全公告具有写入权限。

注意

如果您是安全研究人员,您应该直接联系维护人员,让他们代表您在您不管理的仓库中创建安全公告或发布 CVE。但是,如果为仓库启用了私有漏洞报告,则您可以私下自行报告漏洞。有关更多信息,请参阅“私下报告安全漏洞”。

关于仓库安全公告

漏洞披露是一个需要漏洞报告者(例如安全研究人员)和项目维护人员之间协作的领域。从发现潜在有害的安全漏洞的那一刻起,到向全世界披露漏洞(理想情况下,同时提供补丁)为止,双方都需要通力合作。通常,当有人私下告知维护人员存在安全漏洞时,维护人员会开发修复程序,对其进行验证,并通知项目或软件包的用户。有关更多信息,请参阅“关于安全漏洞的协调披露”。

仓库安全公告允许公共仓库的维护人员私下讨论和修复项目中的安全漏洞。在协作修复后,仓库维护人员可以发布安全公告,向项目的社区公开披露安全漏洞。通过发布安全公告,仓库维护人员可以更轻松地让其社区更新软件包依赖项并研究安全漏洞的影响。

使用仓库安全公告,您可以

  1. 创建安全公告草稿,并使用草稿私下讨论漏洞对您项目的影响。有关更多信息,请参阅“创建仓库安全公告”。
  2. 私下协作以在临时私有 fork 中修复漏洞。
  3. 发布安全公告,一旦发布补丁,即可提醒您的社区注意漏洞。有关更多信息,请参阅“发布仓库安全公告”。

您还可以使用代码库安全公告重新发布您已在其他地方披露的安全漏洞的详细信息,方法是将漏洞的详细信息复制并粘贴到新的安全公告中。

您还可以使用 REST API 创建、列出和更新代码库安全公告。有关更多信息,请参阅“代码库安全公告的 REST API 端点”。

您可以为对安全公告做出贡献的个人表示感谢。有关更多信息,请参阅“编辑代码库安全公告”。

您可以创建安全策略,为人员提供有关报告项目中安全漏洞的说明。有关更多信息,请参阅“向您的代码库添加安全策略”。

如果您在您的代码库中创建了一个安全公告,则该安全公告将保留在您的代码库中。我们将为依赖关系图支持的任何生态系统发布安全公告到 GitHub 安全公告数据库,网址为 github.com/advisories。任何人都可以提交对发布在 GitHub 安全公告数据库中的公告的更改。有关更多信息,请参阅“编辑 GitHub 安全公告数据库中的安全公告”。

如果安全公告专门针对 npm,我们还将该公告发布到 npm 安全公告中。有关更多信息,请参阅 npmjs.com/advisories

您还可以加入 GitHub 安全实验室,浏览与安全相关的主题并为安全工具和项目做出贡献。

CVE 识别编号

GitHub 安全公告以常见漏洞和披露 (CVE) 列表为基础。GitHub 上的安全公告表单是与 CVE 描述格式匹配的标准化表单。

GitHub 是 CVE 编号机构 (CNA),并被授权分配 CVE 识别编号。有关更多信息,请参阅 CVE 网站上的“关于 CVE”和“CVE 编号机构”。

当您为 GitHub 上的公共代码库创建安全公告时,您可以选择为安全漏洞提供现有的 CVE 识别编号。如果您希望为项目中的安全漏洞获得 CVE 识别编号,并且尚未拥有,则可以向 GitHub 请求 CVE 识别编号。GitHub 通常会在 72 小时内审查请求。请求 CVE 识别编号不会公开您的安全公告。如果您的安全公告有资格获得 CVE,GitHub 将为您的公告保留 CVE 识别编号。在您公开安全公告后,我们将发布 CVE 详细信息。任何具有安全公告管理员权限的人员都可以请求 CVE 识别编号。

如果您已经拥有想要使用的 CVE(例如,如果您使用的是除 GitHub 之外的 CVE 编号机构 (CNA)),请将其添加到安全公告表单中。例如,如果您希望使公告与您计划在发布时发送的其他通信保持一致,则可能会发生这种情况。如果 GitHub 已由其他 CNA 覆盖,则无法为您的项目分配 CVE。

发布安全公告并 GitHub 将 CVE 识别编号分配给漏洞后,GitHub 会将 CVE 发布到 MITRE 数据库。有关更多信息,请参阅“发布代码库安全公告”。

已发布安全公告的 Dependabot 警报

GitHub 将审查每个已发布的安全公告,将其添加到 GitHub 安全公告数据库,并可能使用安全公告向受影响的代码库发送 Dependabot 警报。如果安全公告来自 fork,我们只会发送警报,前提是 fork 拥有一个在公共软件包注册表上以唯一名称发布的软件包。此过程最多可能需要 72 小时,GitHub 可能会与您联系以获取更多信息。

有关 Dependabot 警报的更多信息,请参阅“关于 Dependabot 警报”和“关于 Dependabot 安全更新”。有关 GitHub 安全公告数据库的更多信息,请参阅“浏览 GitHub 安全公告数据库中的安全公告”。