One of the things we haven’t done for 1.0 yet is to talk about security vulnerabilities in Rust, and how to report them. Below is a bog-standard policy, based on numerous other open source projects. We want to make sure to handle this right, and so I’m posting this here as a preview for some feedback over the next few days. We’ll have an actual page on rust-lang.org with the final policy at release.
There are one or two small details, and feedback is, of course, very welcome.
Reporting a Bug
We take security very seriously. Thank you for taking the time to responsibly disclose any issues you find.
All security bugs in the Rust distribution should be reported by email to email@example.com. This list is delivered to small security team. Your email will be acknowledged within 24 hours, and you’ll receive a more detailed response to your email within 48 hours indicating the next steps in handling your report. If you would like, you can encrypt your report using our public key.
NB: we have not selected said small team, but it will be 2 or 3 people. Also, the key will be posted with the final announcement.
This email address receives a large amount of spam, so be sure to use a descriptive subject line to avoid having your report be missed. After the initial reply to your report, the security team will endeavor to keep you informed of the progress being made towards a fix and full announcement. As recommended by RFPolicy, these updates will be sent at least every five days. In reality, this is more likely to be every 24-48 hours.
If you have not received a reply to your email within 48 hours, or have not heard from the security team for the past five days, there are a few steps you can take:
- Contact the current security coordinator (Some One) directly.
- Contact the back-up contact (Some One) directly.
- Post on the internals forums or ask in #rust-internals.
Please note that the discussion forums and #rust-internals IRC channel are public areas. When escalating in these venues, please do not discuss your issue. Simply say that you’re trying to get a hold of someone from the security team.
The Rust project has a 5 step disclosure policy.
The security report is received and is assigned a primary handler. This person will coordinate the fix and release process. The problem is confirmed and a list of all affected versions is determined. Code is audited to find any potential similar problems. Fixes are prepared for all releases which are still under maintenance. These fixes are not committed to the public repository but rather held locally pending the announcement.
NB: We would like to eventually assign CVEs to vulnerabilties as well.
On the embargo date, the Rust security mailing list is sent a copy of the announcement. The changes are pushed to the public repository and new builds are deployed to rust-lang.org. Within 6 hours of the mailing list being notified, a copy of the advisory will be published on the Rust blog.
NB: We may choose a specific, external list, or, have a security tag here on internals, which can of course, be set up to send email notifications.
This process can take some time, especially when coordination is required with maintainers of other projects. Every effort will be made to handle the bug in as timely a manner as possible, however it’s important that we follow the release process above to ensure that the disclosure is handled in a consistent manner.
Receiving Security Updates
The best way to receive all the security announcements is to subscribe to the Rust security mailing list. The mailing list is very low traffic, and it receives the public notifications the moment the embargo is lifted.
No one outside the security team and the initial reporter will be notified prior to the lifting of the embargo. We regret that we cannot make exceptions to this policy for high traffic or important sites, as any disclosure beyond the minimum required to coordinate a fix could cause an early leak of the vulnerability.
Comments on This Policy
If you have any suggestions to improve this policy, please send an email to firstname.lastname@example.org.