安全政策

本政策可能是 Rust 社群成員所翻譯。若翻譯版本有任何與英文版本衝突之處,以英文版本為依歸。

回報漏洞

寄送 Email 給 security@rust-lang.org

安全性是 Rust 的核心原则之一,为此,我们希望确保 Rust 的实现是安全的。感谢您花时间负责任地披露您发现的任何问题。

Rust 发行版中的所有安全漏洞都应通过电子邮件报告至 security@rust-lang.org。此邮件列表会发送给一个小型安全团队。您的邮件将在 24 小时内收到确认回复,并在 48 小时内收到更详细的回复,说明处理您的报告的下一步措施。

由于此电子邮件地址会收到大量垃圾邮件,请务必使用描述性主题行,以免您的报告被遗漏。在对您的报告进行初步回复后,安全团队将努力让您了解修复和完整公告的进展情况。根据 RFPolicy 的建议,这些更新至少每五天发送一次。实际上,这更可能是每 24-48 小时一次。

如果您在 48 小时内未收到电子邮件回复,或者在过去五天内未收到安全团队的消息,您可以采取以下步骤(按顺序):

请注意,讨论论坛是公共区域。在这些场所升级时,请勿讨论您的问题。只需说明您正在尝试联系安全团队的某人即可。

寄送 Email 給 security@rust-lang.org

范围

Rust 安全响应工作组处理 Rust 项目维护和发布的所有内容的漏洞报告:

以下内容不在我们的范围内

报告漏洞时,请记住:

  • 除非另有说明,Rust 工具链的所有组件(rustc、Cargo、rust-analyzer 或通过 rustup 提供的任何其他工具)假定用户的源代码和依赖项是完全可信的、经过审查且不包含恶意代码。因编译或分析恶意项目或依赖项而导致的攻击不属于我们考虑范围内的安全漏洞。
  • Rust 编译器或语言中的健全性问题不会自动归类为安全漏洞,但如果报告,将根据具体情况进行分析。
  • regex crate 对不受信任的模式提供保证。我们仅在 regex crate 内的时间不是线性时,且 RegexBuilder 中的限制方法均无法防止攻击时,才将使用不受信任模式导致的拒绝服务视为安全漏洞。

如果您对某些内容是否属于我们的范围有疑问,请联系我们,我们将提供指导。

資訊揭露政策

Rust 项目有 5 步披露流程:

  1. 收到安全报告后,将其分配给一位主要处理人。此人将协调修复和发布过程。
  2. 确认问题并确定所有受影响的版本,并邀请相关 Rust 团队的领域专家参与。
  3. 审核代码以发现任何潜在的类似问题。
  4. 为所有受支持的发布分支准备补丁,并保留 CVE 编号。这些补丁不会提交到公共仓库,而是保存在私有仓库中,等待公告发布。这些补丁会使用与公共更改相同的审查流程进行私下审查。
  5. 过封锁期后,公告的副本会发送到 Rust 安全邮件列表 并发布在 Rust 博客上。这些更改会推送到公共仓库,并启动发布流程。在一小时内,CVE 数据库中会发布完整的详细信息。

此过程可能需要一些时间,尤其是在需要与其他项目的维护人员进行协调时。我们将尽一切努力及时处理错误。但是,我们必须遵循上述发布流程,确保能够以一致的方式处理披露。

接受安全更新

接收所有安全公告的最佳方式是订阅 Rust 安全公告邮件列表(或发送电子邮件至 rustlang-security-announcements+subscribe@googlegroups.com)。邮件列表的业务量很少,在封禁期过后它会马上收到公共通知。邮件列表上的公告由 Rust 的安全密钥 签名。

Rust 项目仅为最新的稳定版本以及 beta 和 nightly 渠道 的最新版本提供支持和安全更新。由于 Rust 版本必须在公开环境中构建,我们将在封禁期解除后立即开始发布流程,并在更新的二进制文件可供下载后发布博客文章。

当漏洞影响软件发行版时,我们将在封禁期解除前 72 小时向 distros@openwall 宣布漏洞,以便发行版在封禁期解除时更新其软件包。