github/advisory-database

GitHub: github/advisory-database

GitHub 官方维护的开源软件安全漏洞数据库,提供 CVE 和 GHSA 格式的漏洞信息,支持多包管理生态系统的安全咨询查询。

Stars: 2214 | Forks: 579

## GitHub 咨询数据库 一个包含 CVE 和 GitHub 发起的、影响开源世界的安全咨询的数据库。 该数据库是免费且开源的,是一个由社区创建、为社区服务的工具。 提交 pull request 来帮助我们改进这个面向所有人的软件漏洞信息数据库。 ## 目标 * 提供一个免费且开源的安全咨询库。 * 使我们的社区能够众包他们关于这些咨询的知识。 * 以行业接受的格式标准公开漏洞,以实现机器互操作性。 ## 功能 所有由 GitHub 确认的咨询都作为单独的文件存储在此仓库中。它们采用[开源漏洞 (OSV) 格式](https://ossf.github.io/osv-schema/)。 您可以向此数据库提交 pull request(参见[贡献](#contributions))来更改或更新每个咨询中的信息。 Pull request 将由我们的内部安全咨询策展团队审核并合并或关闭。如果咨询源自 GitHub 仓库,我们还会 @ 提及原始发布者以获取可选评论。 ## 来源 我们从以下来源将咨询添加到 GitHub 咨询数据库: - [GitHub 上报告的安全咨询](https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/about-repository-security-advisories) - [国家漏洞数据库](https://nvd.nist.gov/) - [npm 安全咨询数据库](https://github.com/advisories?query=type%3Areviewed+ecosystem%3Anpm) - [FriendsOfPHP 数据库](https://github.com/FriendsOfPHP/security-advisories) - [Go 漏洞数据库](https://vuln.go.dev/) - [Python 包咨询数据库](https://github.com/pypa/advisory-database) - [Ruby 咨询数据库](https://rubysec.com/) - [RustSec 咨询数据库](https://rustsec.org/) - [社区对此仓库的贡献](https://github.com/github/advisory-database/pulls) 如果您知道我们还应该导入的其他数据库,请通过[在此仓库中开启问题](https://github.com/github/advisory-database/issues)告诉我们。 ## 贡献 有两种方式可以为这个仓库中提供的信息做出贡献。 在任何单个咨询页面(位于 [github.com/advisories](https://github.com/advisories))上,点击**为此漏洞提出改进建议**(如下所示)来打开"改进安全咨询"表单。在表单中编辑信息,然后点击**提交改进**来打开一个包含您建议更改的 pull request。 ![屏幕截图,显示右侧边栏中的"为此漏洞提出改进建议"链接](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8f48103ce8173450.png) 或者,您可以直接针对此仓库中的文件提交 pull request。为此,请遵循[贡献指南](https://github.com/github/advisory-database/blob/main/CONTRIBUTING.md)。 ### 参考文献 咨询参考文献旨在为读者提供补充的相关信息。我们的目标是包含 CVE 或 GHSA 作者提供的主要来源参考文献,并在适用时补充相关的代码或文档,同时注重其他参考文献的简洁性和相关性。我们通常不包含咨询的次要来源撰写内容,除非由上游来源提供。 ### 修复提交 咨询涉及特定的构建产物,而非整个项目。引用修复特定漏洞的提交对下游读者确定影响很有帮助,如果缺少这些详细信息,我们欢迎贡献添加这些详细信息。如果咨询已包含相关的修复提交,我们不接受重复的贡献,因为添加无关的重复内容会给咨询读者带来不必要的负担。 ## 支持的生态系统 很遗憾,我们无法接受针对我们支持范围之外生态系统的社区贡献。我们的策展团队会仔细审核每个社区贡献,需要能够评估每项更改。 一般来说,我们的生态系统是包注册表使用的命名空间,因此它们专注于注册表内的软件包,这些软件包通常是用作软件开发依赖项的软件包。 我们支持的生态系统包括: - Composer(注册表:https://packagist.org) - Erlang(注册表:https://hex.pm/) - GitHub Actions(注册表:https://github.com/marketplace?type=actions) - Go(注册表:https://pkg.go.dev/) - Maven(注册表:https://repo.maven.apache.org/maven2) - npm(注册表:https://www.npmjs.com/) - NuGet(注册表:https://www.nuget.org/) - pip(注册表:https://pypi.org/) - Pub(注册表:https://pub.dev/) - RubyGems(注册表:https://rubygems.org/) - Rust(注册表:https://crates.io/) - Swift(注册表:[按 dns 命名空间](https://datatracker.ietf.org/doc/html/rfc1035)) 如果您有我们应该支持的新生态系统的建议,请开启一个[问题](https://github.com/github/advisory-database/issues)进行讨论。 ## 许可证 此项目根据 CC-BY 4.0 开源许可证的条款获得许可。请[查看我们的文档](https://docs.github.com/en/github/site-policy/github-terms-for-additional-products-and-features#12-advisory-database)了解完整条款。 ## GHSA ID 每个安全咨询(无论其类型如何)都有一个称为 `GHSA ID` 的唯一标识符。 当在 GitHub 上创建新咨询或从任何受支持的来源将其添加到 GitHub 咨询数据库时,会分配 `GHSA-ID` 限定符。 GHSA ID 的语法遵循以下格式:`GHSA-xxxx-xxxx-xxxx`,其中 * `x` 是来自以下集合的字母或数字:`23456789cfghjmpqrvwx`。 * 在 `GHSA` 部分之外: * 数字和字母是随机分配的。 * 所有字母都是小写的。 您可以使用正则表达式验证 GHSA ID: `/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/` ## `database_specific` 值 OSV Schema 支持多个 `database_specific` JSON 对象字段,用于为 OSV schema 的各个部分添加上下文,具体而言是[受影响的软件包](https://ossf.github.io/osv-schema/#affecteddatabase_specific-field)、软件包的[受影响范围](https://ossf.github.io/osv-schema/#affectedrangesdatabase_specific-field)以及[漏洞](https://ossf.github.io/osv-schema/#database_specific-field)整体。根据规范,这些字段用于保存有关软件包、范围或漏洞的附加信息,"由获取记录的数据库定义"。此外,它还规定这些自定义值的含义和格式"完全由记录数据库定义",超出了 OSV Schema 本身的范围。 出于自身目的,GitHub 在其 OSV 文件中使用了多个 `database_specific` 值。它们主要用于支持[社区贡献](#contributions),除非另有说明,否则仅供内部使用。这些值及其格式可能会随时更改,消耗系统不应依赖它们来处理漏洞信息。 | **范围** | **字段** | **用途** | |---|---|---| | 漏洞 | `severity` | OSV schema 支持 CVSS 等定量严重性分数。GitHub 此外还为每个漏洞分配非定量的可读严重性值。 | | 漏洞 | `cwe_ids` | GitHub 在其漏洞策展过程中为每个漏洞分配至少一个常见弱点枚举 (CWE)。这些 ID 直接映射到 [CWE 数据库](https://cwe.mitre.org/)中跟踪的 CWE ID。 | | 漏洞 | `github_reviewed` | 漏洞是否已由 GitHub 安全策展人审核。 | | 漏洞 | `github_reviewed_at` | GitHub 安全策展人上次审核的时间戳。 | | 范围 | `last_known_affected_version_range` | OSV schema 原生不支持 GitHub 内部表示漏洞版本范围的所有潜在方式。它用于跟踪无法以 OSV 格式表示的版本范围信息,或 GitHub 需要与 OSV 范围分开跟踪的信息。此字段可能出现于 OSV 受影响范围事件之外或代替它们。请参阅[此评论](https://github.com/github/advisory-database/issues/470#issuecomment-1998604377)以获取技术解释。 | ## 常见问题 ### 谁来审核 pull request? 我们的内部安全咨询策展团队会审核 pull request。他们做出最终合并或关闭的决定。如果咨询源自 GitHub 仓库,我们还会 @ 提及原始发布者以获取可选评论。 ### 为什么 PR 的基础分支被更改了? 此仓库是我们咨询数据库的镜像。对此仓库的所有贡献都通过我们的主数据源合并到 main 分支,以保持数据完整性。 我们会自动为每个 PR 创建一个暂存分支,以保留您习惯的 GitHub 工作流程。当从此仓库的 PR 接受贡献时,更改会被合并到暂存分支,然后推送到主数据源,由单独的流程合并到 main,此时暂存分支会被删除。 ### 数据库的结构会改变吗? 在 GitHub,我们边发布边学习!随着使用模式的出现,我们可能会迭代这个数据库的组织方式,并可能对其进行向后不兼容的更改。 ### 在哪里可以获取有关 GitHub 咨询的更多信息? 创建仓库安全咨询的信息可参见[此处](https://docs.github.com/en/code-security/repository-security-advisories/creating-a-repository-security-advisory),在 GitHub 咨询数据库中浏览安全咨询的信息可参见[此处](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database)。
标签:CVE, Go漏洞数据库, Homebrew安装, npm安全, NVD, OSV格式, Ruby安全, Rust安全, XSS, 众包安全, 可视化界面, 国家漏洞数据库, 威胁情报, 安全公告, 安全合规, 安全咨询, 安全漏洞, 开发者工具, 数字签名, 日志审计, 暗色界面, 机器可读, 漏洞修复, 漏洞情报, 社区贡献, 网络代理, 网络安全培训