Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
| 2 | |
| 3 | Dealing with Vulnerability Reports |
| 4 | ********************************** |
| 5 | |
| 6 | The Yocto Project and OpenEmbedded are open-source, community-based projects |
| 7 | used in numerous products. They assemble multiple other open-source projects, |
| 8 | and need to handle security issues and practices both internal (in the code |
| 9 | maintained by both projects), and external (maintained by other projects and |
| 10 | organizations). |
| 11 | |
| 12 | This manual assembles security-related information concerning the whole |
| 13 | ecosystem. It includes information on reporting a potential security issue, |
| 14 | the operation of the YP Security team and how to contribute in the |
| 15 | related code. It is written to be useful for both security researchers and |
| 16 | YP developers. |
| 17 | |
| 18 | How to report a potential security vulnerability? |
| 19 | ================================================= |
| 20 | |
| 21 | If you would like to report a public issue (for example, one with a released |
| 22 | CVE number), please report it using the |
| 23 | :yocto_bugs:`Security Bugzilla </enter_bug.cgi?product=Security>`. |
| 24 | |
| 25 | If you are dealing with a not-yet-released issue, or an urgent one, please send |
| 26 | a message to security AT yoctoproject DOT org, including as many details as |
| 27 | possible: the layer or software module affected, the recipe and its version, |
| 28 | and any example code, if available. This mailing list is monitored by the |
| 29 | Yocto Project Security team. |
| 30 | |
| 31 | For each layer, you might also look for specific instructions (if any) for |
| 32 | reporting potential security issues in the specific ``SECURITY.md`` file at the |
| 33 | root of the repository. Instructions on how and where submit a patch are |
| 34 | usually available in ``README.md``. If this is your first patch to the |
| 35 | Yocto Project/OpenEmbedded, you might want to have a look into the |
| 36 | Contributor's Manual section |
| 37 | ":ref:`contributor-guide/submit-changes:preparing changes for submission`". |
| 38 | |
| 39 | Branches maintained with security fixes |
| 40 | --------------------------------------- |
| 41 | |
| 42 | See the |
| 43 | :ref:`Release process <ref-manual/release-process:Stable Release Process>` |
| 44 | documentation for details regarding the policies and maintenance of stable |
| 45 | branches. |
| 46 | |
| 47 | The :yocto_wiki:`Releases page </Releases>` contains a list |
| 48 | of all releases of the Yocto Project. Versions in gray are no longer actively |
| 49 | maintained with security patches, but well-tested patches may still be accepted |
| 50 | for them for significant issues. |
| 51 | |
| 52 | Security-related discussions at the Yocto Project |
| 53 | ------------------------------------------------- |
| 54 | |
| 55 | We have set up two security-related mailing lists: |
| 56 | |
| 57 | - Public List: yocto [dash] security [at] yoctoproject[dot] org |
| 58 | |
| 59 | This is a public mailing list for anyone to subscribe to. This list is an |
| 60 | open list to discuss public security issues/patches and security-related |
| 61 | initiatives. For more information, including subscription information, |
| 62 | please see the :yocto_lists:`yocto-security mailing list info page </g/yocto-security>`. |
| 63 | |
| 64 | - Private List: security [at] yoctoproject [dot] org |
| 65 | |
| 66 | This is a private mailing list for reporting non-published potential |
| 67 | vulnerabilities. The list is monitored by the Yocto Project Security team. |
| 68 | |
| 69 | |
| 70 | What you should do if you find a security vulnerability |
| 71 | ------------------------------------------------------- |
| 72 | |
| 73 | If you find a security flaw: a crash, an information leakage, or anything that |
| 74 | can have a security impact if exploited in any Open Source software built or |
| 75 | used by the Yocto Project, please report this to the Yocto Project Security |
| 76 | Team. If you prefer to contact the upstream project directly, please send a |
| 77 | copy to the security team at the Yocto Project as well. If you believe this is |
| 78 | highly sensitive information, please report the vulnerability in a secure way, |
| 79 | i.e. encrypt the email and send it to the private list. This ensures that |
| 80 | the exploit is not leaked and exploited before a response/fix has been generated. |
| 81 | |
| 82 | Security team |
| 83 | ============= |
| 84 | |
| 85 | The Yocto Project/OpenEmbedded security team coordinates the work on security |
| 86 | subjects in the project. All general discussion takes place publicly. The |
| 87 | Security Team only uses confidential communication tools to deal with private |
| 88 | vulnerability reports before they are released. |
| 89 | |
| 90 | Security team appointment |
| 91 | ------------------------- |
| 92 | |
| 93 | The Yocto Project Security Team consists of at least three members. When new |
| 94 | members are needed, the Yocto Project Technical Steering Committee (YP TSC) |
| 95 | asks for nominations by public channels including a nomination deadline. |
| 96 | Self-nominations are possible. When the limit time is |
| 97 | reached, the YP TSC posts the list of candidates for the comments of project |
| 98 | participants and developers. Comments may be sent publicly or privately to the |
| 99 | YP and OE TSCs. The candidates are approved by both YP TSC and OpenEmbedded |
| 100 | Technical Steering Committee (OE TSC) and the final list of the team members |
| 101 | is announced publicly. The aim is to have people representing technical |
| 102 | leadership, security knowledge and infrastructure present with enough people |
| 103 | to provide backup/coverage but keep the notification list small enough to |
| 104 | minimize information risk and maintain trust. |
| 105 | |
| 106 | YP Security Team members may resign at any time. |
| 107 | |
| 108 | Security Team Operations |
| 109 | ------------------------ |
| 110 | |
| 111 | The work of the Security Team might require high confidentiality. Team members |
| 112 | are individuals selected by merit and do not represent the companies they work |
| 113 | for. They do not share information about confidential issues outside of the team |
| 114 | and do not hint about ongoing embargoes. |
| 115 | |
| 116 | Team members can bring in domain experts as needed. Those people should be |
| 117 | added to individual issues only and adhere to the same standards as the YP |
| 118 | Security Team. |
| 119 | |
| 120 | The YP security team organizes its meetings and communication as needed. |
| 121 | |
| 122 | When the YP Security team receives a report about a potential security |
| 123 | vulnerability, they quickly analyze and notify the reporter of the result. |
| 124 | They might also request more information. |
| 125 | |
| 126 | If the issue is confirmed and affects the code maintained by the YP, they |
| 127 | confidentially notify maintainers of that code and work with them to prepare |
| 128 | a fix. |
| 129 | |
| 130 | If the issue is confirmed and affects an upstream project, the YP security team |
| 131 | notifies the project. Usually, the upstream project analyzes the problem again. |
| 132 | If they deem it a real security problem in their software, they develop and |
| 133 | release a fix following their security policy. They may want to include the |
| 134 | original reporter in the loop. There is also sometimes some coordination for |
| 135 | handling patches, backporting patches etc, or just understanding the problem |
| 136 | or what caused it. |
| 137 | |
| 138 | When the fix is publicly available, the YP security team member or the |
| 139 | package maintainer sends patches against the YP code base, following usual |
| 140 | procedures, including public code review. |
| 141 | |
| 142 | What Yocto Security Team does when it receives a security vulnerability |
| 143 | ----------------------------------------------------------------------- |
| 144 | |
| 145 | The YP Security Team team performs a quick analysis and would usually report |
| 146 | the flaw to the upstream project. Normally the upstream project analyzes the |
| 147 | problem. If they deem it a real security problem in their software, they |
| 148 | develop and release a fix following their own security policy. They may want |
| 149 | to include the original reporter in the loop. There is also sometimes some |
| 150 | coordination for handling patches, backporting patches etc, or just |
| 151 | understanding the problem or what caused it. |
| 152 | |
| 153 | The security policy of the upstream project might include a notification to |
| 154 | Linux distributions or other important downstream projects in advance to |
| 155 | discuss coordinated disclosure. These mailing lists are normally non-public. |
| 156 | |
| 157 | When the upstream project releases a version with the fix, they are responsible |
| 158 | for contacting `Mitre <https://www.cve.org/>`__ to get a CVE number assigned and |
| 159 | the CVE record published. |
| 160 | |
| 161 | If an upstream project does not respond quickly |
| 162 | ----------------------------------------------- |
| 163 | |
| 164 | If an upstream project does not fix the problem in a reasonable time, |
| 165 | the Yocto's Security Team will contact other interested parties (usually |
| 166 | other distributions) in the community and together try to solve the |
| 167 | vulnerability as quickly as possible. |
| 168 | |
| 169 | The Yocto Project Security team adheres to the 90 days disclosure policy |
| 170 | by default. An increase of the embargo time is possible when necessary. |
| 171 | |
| 172 | Current Security Team members |
| 173 | ----------------------------- |
| 174 | |
| 175 | For secure communications, please send your messages encrypted using the GPG |
| 176 | keys. Remember, message headers are not encrypted so do not include sensitive |
| 177 | information in the subject line. |
| 178 | |
| 179 | - Ross Burton: <ross@burtonini.com> `Public key <https://keys.openpgp.org/search?q=ross%40burtonini.com>`__ |
| 180 | |
| 181 | - Michael Halstead: <mhalstead [at] linuxfoundation [dot] org> |
| 182 | `Public key <https://pgp.mit.edu/pks/lookup?op=vindex&search=0x3373170601861969>`__ |
| 183 | or `Public key <https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xd1f2407285e571ed12a407a73373170601861969>`__ |
| 184 | |
| 185 | - Richard Purdie: <richard.purdie@linuxfoundation.org> `Public key <https://keys.openpgp.org/search?q=richard.purdie%40linuxfoundation.org>`__ |
| 186 | |
| 187 | - Marta Rybczynska: <marta DOT rybczynska [at] syslinbit [dot] com> `Public key <https://keys.openpgp.org/search?q=marta.rybczynska@syslinbit.com>`__ |
| 188 | |
| 189 | - Steve Sakoman: <steve [at] sakoman [dot] com> `Public key <https://keys.openpgp.org/search?q=steve%40sakoman.com>`__ |