|
| 1 | +# Vulnerability Disclosure and Embargo Policy |
| 2 | + |
| 3 | +The ClearlyDefined project welcomes the responsible disclosure of vulnerabilities, including those discovered in: |
| 4 | + |
| 5 | +- [ClearlyDefined website](https://github.com/clearlydefined/website/security/advisories/new) |
| 6 | +- [ClearlyDefined service](https://github.com/clearlydefined/service/security/advisories/new) |
| 7 | +- [ClearlyDefined crawler](https://github.com/clearlydefined/crawler/security/advisories/new) |
| 8 | +- [ClearlyDefined documentation](https://github.com/clearlydefined/clearlydefined/security/advisories/new) |
| 9 | + |
| 10 | +## Initial Contact |
| 11 | + |
| 12 | +All security bugs in ClearlyDefined should be reported to the security team. |
| 13 | +To do so, please reach out in the form of a |
| 14 | +[Github Security Advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities). |
| 15 | + |
| 16 | +You will be invited to join this private area to discuss specifics. Doing so |
| 17 | +allows us to start with a high level of confidentiality and relax it if the |
| 18 | +issue is less critical, moving to work on the fix in the open. |
| 19 | + |
| 20 | +Your initial contact will be acknowledged within 48 hours, and you’ll receive |
| 21 | +a more detailed response within 96 hours indicating the next steps in handling |
| 22 | +your report. |
| 23 | + |
| 24 | +After the initial reply to your report, the security team will endeavor to |
| 25 | +keep you informed of the progress being made towards a fix and full |
| 26 | +announcement. As recommended by |
| 27 | +[RFPolicy](https://dl.packetstormsecurity.net/papers/general/rfpolicy-2.0.txt), |
| 28 | +these updates will be sent at least every five working days. |
| 29 | + |
| 30 | +## Disclosure Policy |
| 31 | + |
| 32 | +The ClearlyDefined project has a 5 step disclosure process. |
| 33 | + |
| 34 | +1. Contact is established, a private channel created, and the security report |
| 35 | + is received and is assigned a primary handler. This person will coordinate |
| 36 | + the fix and release process. |
| 37 | +2. The problem is confirmed and a list of all affected versions is determined. |
| 38 | + If an embargo is needed (see below), details of the embargo are decided. |
| 39 | +3. Code is audited to find any potential similar problems. |
| 40 | +4. Fixes are prepared for all releases which are still under maintenance. In |
| 41 | + case of embargo, these fixes are not committed to the public repository but |
| 42 | + rather held in a private fork pending the announcement. |
| 43 | +5. The changes are pushed to the public repository and new builds are deployed. |
| 44 | + |
| 45 | +This process can take some time, especially when coordination is required |
| 46 | +with maintainers of other projects. Every effort will be made to handle the bug |
| 47 | +in as timely a manner as possible, however it is important that we follow the |
| 48 | +release process above to ensure that the disclosure is handled in a consistent |
| 49 | +manner. |
| 50 | + |
| 51 | +## Embargoes |
| 52 | + |
| 53 | +While the ClearlyDefined project aims to follow the highest standards of |
| 54 | +transparency and openness, handling some security issues may pose such an |
| 55 | +immediate threat to various stakeholders and require coordination between |
| 56 | +various actors that it cannot be made immediately public. |
| 57 | + |
| 58 | +In this case, security issues will fall under an embargo. |
| 59 | + |
| 60 | +An embargo can be called for in various cases: |
| 61 | + |
| 62 | +- when disclosing the issue without simultaneously providing a mitigation |
| 63 | + would seriously endanger users, |
| 64 | +- when producing a fix requires coordinating between multiple actors (such as |
| 65 | + upstream or downstream/dependency projects), or simply |
| 66 | +- when proper analysis of the issue and its ramifications demands time. |
| 67 | + |
| 68 | +If we determine that an issue you report requires an embargo, we will discuss |
| 69 | +this with you and try to find a reasonable expiry date (aka “embargo |
| 70 | +completion date”), as well as who should be included in the list of |
| 71 | +need-to-know people. |
0 commit comments