1# How to report a security vulnerability
2
3This describes how you can report an OpenBMC security vulnerability privately to
4give the project time to address the problem before public disclosure.
5
6The main ideas are:
7
8- You have information about a security problem or vulnerability which is not
9  yet publicly available.
10- You want the problem fixed before public disclosure and you are willing to
11  help make that happen.
12- You understand the problem will eventually be publicly disclosed.
13
14To begin the process: Privately contact the OpenBMC security response team and
15(if known) the project maintainer:
16
17- Suggest sending an email. Use `openbmc-security at lists.ozlabs.org`.
18- If you know which source code repository is affected, find the repository
19  owner or maintainer contact information in the OWNERS or MAINTAINERS file. If
20  not, the security response team will help route the problem.
21- Include details about the security problem such as:
22  - The version and configuration of OpenBMC the problem appears in.
23  - How to reproduce the problem.
24  - What are the symptoms.
25- As the problem reporter, you will be included in the problem response.
26
27Please note the OpenBMC project has multiple source code repositories. Each has
28separate owners. If you do not know which repository is affected, the owner or
29the security response team can help you route the problem.
30
31When the project owners get a new security problem, they will create a [GitHub
32security advisory][] in their repository and begin work. The advisory has draft
33status which means only the collaborators can see it. Collaborators should be
34added as follows:
35
36- The problem reporter.
37- The OpenBMC security response team.
38- Developers responsible for fixing the problem.
39
40The collaborators work to resolve the problem. Activities may include:
41
42- The OpenBMC [CVE Numbering Authority (CNA)][] (members of the OpenBMC security
43  response team) will help clarify the problem and assign CVEs.
44- Privately engage community members to understand and address the problem.
45  Anyone brought onboard should be given a link to the OpenBMC [security
46  response team guidelines][].
47- Work to determine the scope and severity of the problem, such as [CVSS
48  metrics][].
49- Coordinate workarounds and fixes with you and the community.
50- Coordinate announcement details with you, such as timing or how you want to be
51  credited.
52- At the agreed time, publish the OpenBMC security advisory, reveal the fix, and
53  publish the CVE.
54
55Please refer to the [CERT Guide to Coordinated Vulnerability Disclosure][],
56(SPECIAL REPORT CMU/SEI-2017-SR-022) for additional considerations.
57
58Alternatives to this process:
59
60- If the problem is not severe, please write an issue to the affected repository
61  or email the list.
62- Join the OpenBMC community and fix the problem yourself.
63- If you are unsure if the error is in OpenBMC (contrasted with upstream
64  projects such as the Linux kernel or downstream projects such as a customized
65  version of OpenBMC), please report it and we will help you route it to the
66  correct area.
67- Discuss your topic in other
68  [OpenBMC communication channels](https://github.com/openbmc/openbmc).
69
70[security response team guidelines]: ./obmc-security-response-team-guidelines.md
71[cvss metrics]: https://www.first.org/cvss/calculator/3.0
72[cve]: http://cve.mitre.org/about/index.html
73[cert guide to coordinated vulnerability disclosure]:
74  https://resources.sei.cmu.edu/asset_files/SpecialReport/2017_003_001_503340.pdf
75[github security advisory]:
76  https://docs.github.com/en/code-security/repository-security-advisories/creating-a-repository-security-advisory
77[cve numbering authority (cna)]: https://www.cve.org/ProgramOrganization/CNAs
78