任何拥有安全公告管理员权限的用户都可以发布安全公告。
注意
本文适用于作为公共代码库所有者编辑代码库级别的公告。
非代码库所有者用户可以在 GitHub 安全公告数据库 github.com/advisories 中参与全局安全公告。对全局公告的编辑不会更改或影响公告在代码库中的显示方式。更多信息,请参阅“编辑 GitHub 安全公告数据库中的安全公告”。
先决条件
在您可以发布安全公告或请求 CVE 编号之前,您必须创建一个安全公告草稿,并提供有关受安全漏洞影响的项目版本的信息。更多信息,请参阅“创建代码库安全公告”。
如果您已创建安全公告,但尚未提供有关受安全漏洞影响的项目版本的详细信息,则可以编辑安全公告。更多信息,请参阅“编辑代码库安全公告”。
关于发布安全公告
发布安全公告时,您会通知您的社区有关安全公告解决的安全漏洞。发布安全公告使您的社区更容易更新软件包依赖项并研究安全漏洞的影响。
您还可以使用代码库安全公告重新发布您已在其他地方披露的安全漏洞的详细信息,方法是将漏洞详细信息复制并粘贴到新的安全公告中。
在发布安全公告之前,您可以私下协作以在临时私有 fork 中修复漏洞。更多信息,请参阅“在临时私有 fork 中协作以解决代码库安全漏洞”。
警告
发布安全公告前,应尽可能始终添加修复版本。如果不添加,则公告将不含修复版本发布,Dependabot 将向您的用户发出有关该问题的警报,但不会提供任何安全的更新版本。
我们建议您在以下不同情况下采取以下步骤:
- 如果修复版本即将推出,并且您能够做到,请等到修复版本准备好后再披露问题。
- 如果修复版本正在开发中但尚未推出,请在公告中提及此事,并在发布后稍后编辑公告。
- 如果您不打算修复该问题,请在公告中明确说明,以免您的用户联系您询问何时修复。在这种情况下,最好包含用户可以采取的缓解问题的步骤。
当您从公共仓库发布安全公告草稿时,每个人都能看到:
- 安全公告数据的当前版本。
- 已获认可的用户接受的任何公告署名。
注意
公众永远无法访问安全公告的编辑历史记录,只能看到已发布的版本。
发布安全公告后,安全公告的 URL 将保持与发布安全公告之前相同。任何具有仓库读取权限的人员都可以查看安全公告。安全公告的协作者可以继续查看过去的对话,包括安全公告中的完整评论流,除非拥有管理员权限的人员将协作者从安全公告中移除。
如果您需要更新或更正已发布的安全公告中的信息,您可以编辑安全公告。更多信息,请参阅“编辑仓库安全公告”。
发布安全公告
发布安全公告会删除安全公告的临时私有分支。
-
在 GitHub 上,导航到仓库的主页。
-
在仓库名称下,单击 安全。如果您看不到“安全”选项卡,请选择下拉菜单,然后单击安全。
-
在左侧边栏的“报告”下,单击 公告。
-
在“安全公告”列表中,单击您要发布的安全公告的名称。
-
滚动到公告表单的底部,然后单击发布公告。
注意
如果您选择了“稍后请求 CVE ID”,您将看到一个请求 CVE按钮来代替发布公告按钮。更多信息,请参阅下面“请求 CVE 识别号(可选)”。
已发布安全公告的 Dependabot 警报
GitHub 将审查每个已发布的安全公告,将其添加到 GitHub 安全公告数据库,并可能使用安全公告向受影响的仓库发送 Dependabot 警报。如果安全公告来自分支,我们只会在分支拥有在公共包注册表上以唯一名称发布的包时发送警报。此过程最多可能需要 72 小时,GitHub 可能会联系您以获取更多信息。
有关 Dependabot 警报的更多信息,请参阅“关于 Dependabot 警报”和“关于 Dependabot 安全更新”。有关 GitHub 安全公告数据库的更多信息,请参阅“在 GitHub 安全公告数据库中浏览安全公告”。
请求 CVE 识别号(可选)
如果您希望为项目中的安全漏洞获取 CVE 识别号,并且尚未拥有,您可以向 GitHub 请求 CVE 识别号。GitHub 通常会在 72 小时内审查请求。请求 CVE 识别号不会公开您的安全公告。如果您的安全公告符合 CVE 资格,GitHub 将为您的公告保留 CVE 识别号。在您公开安全公告后,我们将发布 CVE 详情。任何对安全公告拥有管理员权限的人员都可以请求 CVE 识别号。
如果您已经有要使用的 CVE(例如,如果您使用的是 GitHub 以外的 CVE 编制机构 (CNA)),请将 CVE 添加到安全公告表单中。例如,如果您希望使公告与您计划在发布时发送的其他通信保持一致,则可能会发生这种情况。如果您的项目已由其他 CNA 覆盖,GitHub 无法为您的项目分配 CVE。更多信息,请参阅“关于仓库安全公告”。
-
在 GitHub 上,导航到仓库的主页。
-
在仓库名称下,单击 安全。如果您看不到“安全”选项卡,请选择下拉菜单,然后单击安全。
-
在左侧边栏的“报告”下,单击 公告。
-
在“安全公告”列表中,单击您要请求 CVE 识别号的安全公告的名称。
-
滚动到公告表单的底部,然后单击请求 CVE。
进一步阅读
- “删除仓库安全公告”