Skip to main content

发布存储库安全公告

您可以发布安全通告,向社区提醒项目中的安全漏洞。

对安全通告具有管理员权限的任何人都可发布安全通告。

注意:本文适用于作为存储库所有者编辑存储库级别的建议。

不是存储库所有者的用户可以在 github.com/advisories 上的 GitHub Advisory Database 中参与全局安全建议。 对全局公告的编辑不会改变或影响公告在存储库中的显示方式。 有关详细信息,请参阅“在 GitHub Advisory Database 中编辑安全公告”。

先决条件

在发布安全通告或申请 CVE 标识号之前,必须创建安全通告草稿,并提供受安全漏洞影响的项目版本的相关信息。 有关详细信息,请参阅“创建存储库安全公告”。

如果您已创建安全通告,但尚未提供有关安全漏洞影响的项目版本的详细信息,则可以编辑安全通告。 有关详细信息,请参阅“编辑存储库安全通告”。

关于发布安全通告

发布安全通告时,会通知您的社区关于该安全通告解决的安全漏洞。 发布安全通告使您的社区能够更轻松地更新包依赖项和研究安全漏洞的影响。

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

在发布安全通告之前,您可以私下协作在临时私有复刻中修复漏洞。 有关详细信息,请参阅“在临时专用分支中协作以解决存储库安全漏洞”。

警告:只要可能,你都应该始终在发布安全公告之前向该公告添加修复版本。 否则,通告将在没有修复版本的情况下发布,并且 Dependabot 将向您的用户提醒有关问题,而不需提供任何安全版本来更新。

我们建议您在以下不同情况下采取以下步骤:

  • 如果修复版本即将可用,请尽可能等到修复版本准备好后再发布。
  • 如果修复版本正在开发中,但尚不可用,请在通告中提及,等发布后再编辑通告。
  • 如果您不打算修复问题,请在通告中明确说明,以免用户联系您询问何时进行修复。 在这种情况下,列入用户可用于缓解这一问题的步骤会有帮助。

从公共仓库发布通告草稿时,每个人都可以看到:

  • 通告数据的当前版本。
  • 积分用户已接受的任何通告积分。

注意:公众无权查看公告的编辑历史记录,只能看到已发布的版本。

发布安全通告后,安全通告的 URL 将与发布安全通告之前保持相同。 对仓库具有读取权限的任何人都能看到安全通告。 安全通告的协作者可以继续查看安全通告中过去的对话,包括完整的评论流,除非有管理员权限的人从安全通告删除该协作者。

如果需要更新或更正已发布的安全通告中的信息,可以编辑安全通告。 有关详细信息,请参阅“编辑存储库安全通告”。

发布安全通告

发布安全通告会删除该安全通告的临时私有复刻。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。 存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中的“报告”下,单击“ 公告”。

  4. 在“安全通告”列表中,单击要发布的安全通告的名称。

  5. 滚动到通告窗体的底部,然后单击“发布通告”。

    安全通告草稿的“已提供所需的通告信息”区域的屏幕截图。 “发布通告”按钮用深橙色框出。

注意:如果选择了“稍后申请 CVE ID”,将会看到“申请 CVE”按钮而非“发布通告”按钮。 有关详细信息,请参阅下面的“申请 CVE 识别号(可选)”。

对于发布的安全通告的 Dependabot alerts

GitHub 将审查每个发布的安全通告,将其添加到 GitHub Advisory Database, 并且可能使用安全通告向受影响的仓库发送 Dependabot alerts 警报。 如果安全通告来自复刻,我们仅当该复刻拥有在公共软件包注册表上以唯一名称发布的软件包时才发送警报。 此过程最长可能需要 72 小时,GitHub 可能会联系您以获取更多信息。

有关 Dependabot alerts 的详细信息,请参阅“关于 Dependabot 警报”和“关于 Dependabot 安全更新”。 有关 GitHub Advisory Database 的详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。

申请 CVE 识别号(可选)

如果你需要项目中的安全漏洞的 CVE 标识号,但尚未获得,则可从 GitHub 请求 CVE 标识号。 GitHub 通常在 72 小时内审核请求。 请求 CVE 识别码不会公开您的安全通告。 如果您的安全通告符合 CVE 条件,GitHub 将为您的通告保留 CVE 识别码。 然后,我们将在公开安全通告后发布 CVE 详细信息。 对安全通告具有管理员权限的任何人都可以申请 CVE 标识号。

如果您已经拥有要使用的 CVE,例如,如果您使用 GitHub 以外的 CVE Numbering Authority (CNA),请将 CVE 添加到安全通告表。 例如,如果您想要获得与计划在发布时间发送的其他通信一致的通告,则可能会发生这种情况。 如果你的项目由其他 CNA 涵盖,则 GitHub 无法向你的项目分配 CVE。有关详细信息,请参阅“关于存储库安全公告”。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。 存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。

  3. 在左侧边栏中的“报告”下,单击“ 公告”。

  4. 在“安全通告”列表中,单击要为其申请 CVE 识别号的安全通告的名称。

  5. 滚动到通告窗体的底部,然后单击“申请 CVE”。

    安全通告草稿的“已提供所需的通告信息”区域的屏幕截图。 “申请 CVE”按钮用深橙色框出。

延伸阅读