Ruby on Rails takes web security very seriously. This means including features to protect application makers from common issues like CSRF, Script Injection, SQL Injection, and the like. But it also means a clear policy on how to report vulnerabilities and receive updates when patches to those are released.
For major security issues, the current release series, the next most recent one, and the last additional major series will receive patches and new versions. This is currently 5.1.x, 5.0.x and 4.2.x.
For minor security issues, the current release series and the next most recent one will receive patches and new versions. This is currently 5.1.x, 5.0.x.
When a release series is no longer supported, it’s your own responsibility to deal with bugs and security issues. We may provide backports of the fixes and publish them to git, however there will be no new versions released. If you are not comfortable maintaining your own versions, you should upgrade to a supported version.
The classification of a security issue is determined by the Rails core team.
All security bugs in rails should be reported through our bounty program page at HackerOne. This will deliver a message to a subset of the core team who handle security issues. Your report 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.
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. 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:
Please note, the rails core list and #rails-contrib are public areas. When escalating to that address please do not discuss your issue, simply say that you’re trying to get a hold of someone from the security team.
Typically the embargo date will be set 72 hours from the time distros@openwall is first notified, however this may vary depending on the severity of the bug or difficulty in applying a fix.
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.
The best way to receive all the security announcements is to subscribe to the Rails Security mailing list. The mailing list is very low traffic, and it receives the public notifications the moment the embargo is lifted. If you produce packages of Ruby on Rails and require prior notification of vulnerabilities, you should be subscribed to distros@openwall.
No one outside the core team, the initial reporter or distros@openwall 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.
If you have any suggestions to improve this policy, please send an email to email@example.com.