rustsec/advisory-db
GitHub: rustsec/advisory-db
Stars: 1088 | Forks: 440
# RustSec 咨询数据库
[][build-link]

[][chat-link]
RustSec 咨询数据库是一个安全咨询仓库,收录了针对通过 https://crates.io 发布的 Rust crates 的安全咨询。该咨询数据库的人类可读版本可以在 https://rustsec.org/advisories/ 找到。
我们还将数据[导出](https://github.com/rustsec/advisory-db/tree/osv)为 [OSV](https://github.com/ossf/osv-schema) 格式。
我们所有的数据都可以在 [osv.dev](https://osv.dev/list?ecosystem=crates.io&q=) 上获取,也可以通过其 [API](https://osv.dev/#use-the-api) 访问。
[GitHub 咨询数据库](https://github.com/advisories/) 引入了我们的咨询信息。
以下工具使用此咨询数据库,可用于审计和报告(欢迎提交 PR 添加您的工具):
* [cargo-audit]:审计 `Cargo.lock` 文件中是否存在包含安全漏洞的 crates
* [cargo-deny]:审计 `Cargo.lock` 文件中是否存在包含安全漏洞的 crates,限制特定依赖的使用、其许可证、下载源,检测依赖树中同一软件包的多个版本等。
* [trivy]:一个简单而全面的漏洞/错误配置/机密扫描器,适用于容器和其他工件。Trivy 能检测 OS 包和特定语言包的漏洞。通过 [OSV](https://osv.dev) 工作。
* [dependabot]:Dependabot 可以通过发起包含安全更新的 pull request 来为您修复易受攻击的依赖项。通过 [GHSA](https://github.com/advisories) 工作。
## 报告漏洞
要报告新漏洞,请使用下方模板提交 pull request。
更多信息请参阅 [CONTRIBUTING.md]。
在为不再维护的 crate 提交咨询之前,请参阅 [HOWTO_UNMAINTAINED.md]。
## 咨询格式
模板请参阅 [EXAMPLE_ADVISORY.md]。
咨询信息使用 [Markdown] 格式编写,并包含 [TOML] "front matter"(前置配置)。
以下是咨询的 [TOML] "front matter" 部分的结构说明:
```
# 在提交使用此模板的 PR 之前,**请删除注释**
# 解释每个字段的内容,以及任何未使用的字段。
[advisory]
# 公告的标识符(必填)。将被分配一个 "RUSTSEC-YYYY-NNNN"
# 标识符,例如 RUSTSEC-2018-0001。请在 PR 中使用 "RUSTSEC-0000-0000"。
id = "RUSTSEC-0000-0000"
# 受影响 crate 的名称(必填)
package = "mycrate"
# 公告的披露日期,格式为 RFC 3339 日期(必填)
date = "2021-01-31"
# 公告是否撤回(可选)
#withdrawn = "YYYY-MM-DD"
# 指向此问题详细描述的 URL,例如 GitHub issue/PR、
# 更新日志条目,或宣布发布的博文(可选,除非
# 公告使用的许可证要求署名)。
url = "https://github.com/mystuff/mycrate/issues/123"
# 指向关于公告的额外有用参考信息的 URL(可选)
#references = ["https://github.com/mystuff/mycrate/discussions/1"]
# 可选:表明信息安全公告的类型
# - "unsound" 用于正确性 (soundness) 问题
# - "unmaintained" 用于不再维护的 crate
# - "notice" 用于其他信息性通知
#informational = "unmaintained"
# 可选:此公告所属的类别。
# # 参见 。
categories = ["crypto-failure"]
# 可选:通用漏洞评分系统分数。更多信息
# 可在 CVSS 网站上找到,https://www.first.org/cvss/。
#cvss = "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
# 描述此漏洞的自由格式关键词,类似于 Cargo(可选)
keywords = ["ssl", "mitm"]
# 漏洞别名,例如 CVE ID(可选但推荐)
#aliases = ["CVE-2018-XXXX"]
# 相关漏洞(可选)
# 例如被 -sys crate 封装的 C 库的 CVE)
#related = ["CVE-2018-YYYY", "CVE-2018-ZZZZ"]
# 可选:公告许可证,采用 SPDX 标识符。默认值为 "CC0-1.0"。
# 接受的值为 "CC0-1.0" 和 "CC-BY-4.0"。
# 当使用 "CC-BY-4.0" 时,`url` 字段必须包含指向源
# 公告的链接。这仅适用于从 GitHub
# 公告数据库 ("GHSA") 导入的公告。
#license = "CC-BY-4.0"
# 可选:缩小此公告影响范围的元数据
[affected]
# 受此漏洞影响的 CPU 架构(可选)。
# 仅当漏洞特定于某个 CPU 架构时才使用此字段,
# 例如漏洞位于 x86 汇编代码中。
# 有关 CPU 架构字符串的列表,请参见 "platforms" crate:
#
#arch = ["x86", "x86_64"]
# 受此漏洞影响的操作系统(可选)
# 仅当漏洞特定于某个操作系统时才使用此字段,例如它
# 位于特定于 Windows 的 API 绑定中。
# 有关 OS 字符串的列表,请参见 "platforms" crate:
#
#os = ["windows"]
# 易受攻击函数的规范路径表(可选)
# 映射到此公告影响的版本中使用该特定
# 名称的版本(例如,如果函数在版本之间被重命名)。
# 路径语法是 `cratename::path::to::function`,不带任何
# 参数或附加信息,后跟版本要求列表。
[affected.functions]
"mycrate::MyType::vulnerable_function" = ["< 1.2.0, >= 1.1.0"]
# 包含此漏洞修复的版本(必填)
# Cargo 支持的所有选择器在此处均受支持:
# https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
# 使用 patched = [],例如在没有修复的未维护情况 (unmaintained) 下
[versions]
patched = [">= 1.2.0"]
# 从未受影响的版本(可选)
#unaffected = ["< 1.1.0"]
```
上述 [TOML] "front matter" 之后是 [Markdown] 格式的详细描述。
## 许可证
除非另有说明,本仓库中的所有内容均属于公共领域。
[](https://github.com/RustSec/advisory-db/blob/main/LICENSES/CC0-1.0.txt)
例外情况是从 [GitHub 咨询数据库](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#advisory-database) 引入的咨询,它们采用 CC-BY 4.0 许可证。
它们包含一个明确指示其许可证的 `license` 字段和一个指向原始咨询的 `url` 字段,以便正确署名。
[](https://github.com/RustSec/advisory-db/blob/main/LICENSES/CC-BY-4.0.txt)
标签:cargo-audit, Crates.io, CVE, DevSecOps, GPT, OSV, Python安全, Rust, RustSec, Vercel, 上游代理, 代码安全, 依赖审计, 可视化界面, 安全, 安全告警, 开发安全, 数字签名, 漏洞枚举, 漏洞管理, 网络安全研究, 网络流量审计, 超时处理, 防御加固