1baf9fba3SThomas Monjalon.. SPDX-License-Identifier: BSD-3-Clause 2baf9fba3SThomas Monjalon Copyright 2019 The DPDK contributors 3baf9fba3SThomas Monjalon 4baf9fba3SThomas MonjalonDPDK Vulnerability Management Process 5baf9fba3SThomas Monjalon===================================== 6baf9fba3SThomas Monjalon 7baf9fba3SThomas MonjalonScope 8baf9fba3SThomas Monjalon----- 9baf9fba3SThomas Monjalon 10baf9fba3SThomas MonjalonOnly the main repositories (dpdk and dpdk-stable) of the core project 1145c1608dSFerruh Yigitare in the scope of this security process (including experimental APIs). 12baf9fba3SThomas MonjalonIf a stable branch is declared unmaintained (end of life), 13baf9fba3SThomas Monjalonno fix will be applied. 14baf9fba3SThomas Monjalon 15baf9fba3SThomas MonjalonAll vulnerabilities are bugs, but not every bug is a vulnerability. 16baf9fba3SThomas MonjalonVulnerabilities compromise one or more of: 17baf9fba3SThomas Monjalon 18baf9fba3SThomas Monjalon* Confidentiality (personal or corporate confidential data). 19baf9fba3SThomas Monjalon* Integrity (trustworthiness and correctness). 20baf9fba3SThomas Monjalon* Availability (uptime and service). 21baf9fba3SThomas Monjalon 22baf9fba3SThomas MonjalonIf in doubt, please consider the vulnerability as security sensitive. 23baf9fba3SThomas MonjalonAt worst, the response will be to report the bug through the usual channels. 24baf9fba3SThomas Monjalon 25baf9fba3SThomas Monjalon 26baf9fba3SThomas MonjalonFinding 27baf9fba3SThomas Monjalon------- 28baf9fba3SThomas Monjalon 29baf9fba3SThomas MonjalonThere is no pro-active security engineering effort at the moment. 30baf9fba3SThomas Monjalon 31baf9fba3SThomas MonjalonPlease report any security issue you find in DPDK as described below. 32baf9fba3SThomas Monjalon 33baf9fba3SThomas Monjalon 34baf9fba3SThomas MonjalonReport 35baf9fba3SThomas Monjalon------ 36baf9fba3SThomas Monjalon 37baf9fba3SThomas MonjalonDo not use Bugzilla (unsecured). 38baf9fba3SThomas MonjalonInstead, send GPG-encrypted emails 393d4b2afbSDavid Marchandto `security@dpdk.org <https://core.dpdk.org/security#contact>`_. 40baf9fba3SThomas MonjalonAnyone can post to this list. 41baf9fba3SThomas MonjalonIn order to reduce the disclosure of a vulnerability in the early stages, 42baf9fba3SThomas Monjalonmembership of this list is intentionally limited to a `small number of people 433d4b2afbSDavid Marchand<https://mails.dpdk.org/roster/security>`_. 44baf9fba3SThomas Monjalon 45baf9fba3SThomas MonjalonIt is additionally encouraged to GPG-sign one-on-one conversations 46baf9fba3SThomas Monjalonas part of the security process. 47baf9fba3SThomas Monjalon 48baf9fba3SThomas MonjalonAs it is with any bug, the more information provided, 49baf9fba3SThomas Monjalonthe easier it will be to diagnose and fix. 50baf9fba3SThomas MonjalonIf you already have a fix, please include it with your report, 51baf9fba3SThomas Monjalonas that can speed up the process considerably. 52baf9fba3SThomas Monjalon 53baf9fba3SThomas MonjalonIn the report, please note how you would like to be credited 54baf9fba3SThomas Monjalonfor discovering the issue 55baf9fba3SThomas Monjalonand the details of any embargo you would like to impose. 56baf9fba3SThomas Monjalon 57baf9fba3SThomas MonjalonIf the vulnerability is not public yet, 58baf9fba3SThomas Monjalonno patch or information should be disclosed publicly. 59baf9fba3SThomas MonjalonIf a fix is already published, 60baf9fba3SThomas Monjalonthe reporting process must be followed anyway, as described below. 61baf9fba3SThomas Monjalon 62baf9fba3SThomas Monjalon 63baf9fba3SThomas MonjalonConfirmation 64baf9fba3SThomas Monjalon------------ 65baf9fba3SThomas Monjalon 66baf9fba3SThomas MonjalonUpon reception of the report, a security team member should reply 67baf9fba3SThomas Monjalonto the reporter acknowledging that the report has been received. 68baf9fba3SThomas Monjalon 69baf9fba3SThomas MonjalonThe DPDK security team reviews the security vulnerability reported. 70baf9fba3SThomas MonjalonArea experts not members of the security team may be involved in the process. 71baf9fba3SThomas MonjalonIn case the reported issue is not qualified as a security vulnerability, 72baf9fba3SThomas Monjalonthe security team will request the submitter to report it 73baf9fba3SThomas Monjalonusing the usual channel (Bugzilla). 74baf9fba3SThomas MonjalonIf qualified, the security team will assess which DPDK version are affected. 75baf9fba3SThomas MonjalonA bugzilla ID (allocated in a `reserved pool 76baf9fba3SThomas Monjalon<https://bugs.dpdk.org/buglist.cgi?f1=bug_group&o1=equals&v1=security>`_) 77baf9fba3SThomas Monjalonis assigned to the vulnerability, and kept empty until public disclosure. 78baf9fba3SThomas Monjalon 79baf9fba3SThomas MonjalonThe security team calculates the severity score with 80baf9fba3SThomas Monjalon`CVSS calculator <https://www.first.org/cvss/calculator/3.0>`_ 81baf9fba3SThomas Monjalonbased on inputs from the reporter and its own assessment of the vulnerability, 82baf9fba3SThomas Monjalonand agrees on the score with the reporter. 83baf9fba3SThomas Monjalon 84baf9fba3SThomas MonjalonAn embargo may be put in place depending on the severity of the vulnerability. 85baf9fba3SThomas MonjalonIf an embargo is decided, its duration should be suggested by the security team 86baf9fba3SThomas Monjalonand negotiated with the reporter. 87baf9fba3SThomas MonjalonEmbargo duration between vulnerability confirmation and public disclosure 88baf9fba3SThomas Monjalonshould be between **one and ten weeks**. 89baf9fba3SThomas MonjalonIf an embargo is not required, the vulnerability may be fixed 90baf9fba3SThomas Monjalonusing the standard patch process, once a CVE number has been assigned. 91baf9fba3SThomas Monjalon 92baf9fba3SThomas MonjalonThe confirmation mail should be sent within **3 business days**. 93baf9fba3SThomas Monjalon 94baf9fba3SThomas MonjalonFollowing information must be included in the mail: 95baf9fba3SThomas Monjalon 96baf9fba3SThomas Monjalon* Confirmation 97baf9fba3SThomas Monjalon* CVSS severity and score 98baf9fba3SThomas Monjalon* Embargo duration 99baf9fba3SThomas Monjalon* Reporter credit 100baf9fba3SThomas Monjalon* Bug ID (empty and restricted for future reference) 101baf9fba3SThomas Monjalon 102baf9fba3SThomas MonjalonCVE Request 103baf9fba3SThomas Monjalon----------- 104baf9fba3SThomas Monjalon 105baf9fba3SThomas MonjalonThe security team develops a security advisory document. 106baf9fba3SThomas MonjalonThe security team may, at its discretion, 107baf9fba3SThomas Monjaloninclude the reporter (via "CC") in developing the security advisory document, 108baf9fba3SThomas Monjalonbut in any case should accept feedback 109baf9fba3SThomas Monjalonfrom the reporter before finalizing the document. 110baf9fba3SThomas MonjalonWhen the document is final, the security team needs to 111baf9fba3SThomas Monjalonrequest a CVE identifier from a CNA. 112baf9fba3SThomas Monjalon 113baf9fba3SThomas MonjalonThe CVE request should be sent 114baf9fba3SThomas Monjalonto `secalert@redhat.com <mailto:secalert@redhat.com>`_ 115baf9fba3SThomas Monjalonusing GPG encrypted email 116baf9fba3SThomas Monjalon(see `contact details <https://access.redhat.com/security/team/contact>`_). 117baf9fba3SThomas Monjalon 118baf9fba3SThomas Monjalon 119baf9fba3SThomas MonjalonCVE Request Template with Embargo 120baf9fba3SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121baf9fba3SThomas Monjalon 122baf9fba3SThomas Monjalon:: 123baf9fba3SThomas Monjalon 124baf9fba3SThomas Monjalon A vulnerability was discovered in the DPDK project. 125baf9fba3SThomas Monjalon In order to ensure full traceability, we need a CVE number assigned 126baf9fba3SThomas Monjalon that we can attach to private and public notifications. 127baf9fba3SThomas Monjalon Please treat the following information as confidential during the embargo 128baf9fba3SThomas Monjalon until further public disclosure. 129baf9fba3SThomas Monjalon 130baf9fba3SThomas Monjalon [PRODUCT]: 131baf9fba3SThomas Monjalon [VERSION]: 132baf9fba3SThomas Monjalon [PROBLEMTYPE]: 133baf9fba3SThomas Monjalon [SEVERITY]: 134baf9fba3SThomas Monjalon [REFERENCES]: { bug_url } 135baf9fba3SThomas Monjalon [DESCRIPTION]: 136baf9fba3SThomas Monjalon 137baf9fba3SThomas Monjalon Thanks 138baf9fba3SThomas Monjalon { DPDK_security_team_member }, on behalf of the DPDK security team 139baf9fba3SThomas Monjalon 140baf9fba3SThomas Monjalon 141baf9fba3SThomas MonjalonCVE Request Template without Embargo 142baf9fba3SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143baf9fba3SThomas Monjalon 144baf9fba3SThomas Monjalon:: 145baf9fba3SThomas Monjalon 146baf9fba3SThomas Monjalon A vulnerability was discovered in the DPDK project. 147baf9fba3SThomas Monjalon In order to ensure full traceability, we need a CVE number assigned 148baf9fba3SThomas Monjalon that we can attach to private and public notifications. 149baf9fba3SThomas Monjalon 150baf9fba3SThomas Monjalon [PRODUCT]: 151baf9fba3SThomas Monjalon [VERSION]: 152baf9fba3SThomas Monjalon [PROBLEMTYPE]: 153baf9fba3SThomas Monjalon [SEVERITY]: 154baf9fba3SThomas Monjalon [REFERENCES]: { bug_url } 155baf9fba3SThomas Monjalon [DESCRIPTION]: 156baf9fba3SThomas Monjalon 157baf9fba3SThomas Monjalon Thanks 158baf9fba3SThomas Monjalon { DPDK_security_team_member }, on behalf of the DPDK security team 159baf9fba3SThomas Monjalon 160baf9fba3SThomas Monjalon 161baf9fba3SThomas MonjalonFix Development and Review 162baf9fba3SThomas Monjalon-------------------------- 163baf9fba3SThomas Monjalon 164baf9fba3SThomas MonjalonIf the fix is already published, this step is skipped, 165baf9fba3SThomas Monjalonand the pre-release disclosure is replaced with the private disclosure, 166baf9fba3SThomas Monjalonas described below. It must not be considered as the standard process. 167baf9fba3SThomas Monjalon 168baf9fba3SThomas MonjalonThis step may be started in parallel with CVE creation. 169baf9fba3SThomas MonjalonThe patches fixing the vulnerability are developed and reviewed 170baf9fba3SThomas Monjalonby the security team and 171baf9fba3SThomas Monjalonby elected area experts that agree to maintain confidentiality. 172baf9fba3SThomas Monjalon 173*20cb55cbSLuca BoccassiThe CVE id and the bug id must be referenced in the patch if there is no 174*20cb55cbSLuca Boccassiembargo, or if there is an embargo, but it will be lifted when the release 175*20cb55cbSLuca Boccassiincluding the patch is published. If the embargo is going to be lifted after the 176*20cb55cbSLuca Boccassirelease, then the CVE and bug ids must be omitted from the commit message. 177baf9fba3SThomas Monjalon 178baf9fba3SThomas MonjalonBackports to the identified affected versions are done once the fix is ready. 179baf9fba3SThomas Monjalon 180baf9fba3SThomas Monjalon 181baf9fba3SThomas MonjalonPre-Release Disclosure 182baf9fba3SThomas Monjalon---------------------- 183baf9fba3SThomas Monjalon 184baf9fba3SThomas MonjalonWhen the fix is ready, the security advisory and patches are sent 185baf9fba3SThomas Monjalonto downstream stakeholders 186baf9fba3SThomas Monjalon(`security-prerelease@dpdk.org <mailto:security-prerelease@dpdk.org>`_), 187baf9fba3SThomas Monjalonspecifying the date and time of the end of the embargo. 1884f041696SFerruh YigitThe communicated public disclosure date should be **less than one week** 189baf9fba3SThomas Monjalon 190baf9fba3SThomas MonjalonDownstream stakeholders are expected not to deploy or disclose patches 191baf9fba3SThomas Monjalonuntil the embargo is passed, otherwise they will be removed from the list. 192baf9fba3SThomas Monjalon 193baf9fba3SThomas MonjalonDownstream stakeholders (in `security-prerelease list 1943d4b2afbSDavid Marchand<https://mails.dpdk.org/roster/security-prerelease>`_), are: 195baf9fba3SThomas Monjalon 196baf9fba3SThomas Monjalon* Operating system vendors known to package DPDK 197baf9fba3SThomas Monjalon* Major DPDK users, considered trustworthy by the technical board, who 198baf9fba3SThomas Monjalon have made the request to `techboard@dpdk.org <mailto:techboard@dpdk.org>`_ 199baf9fba3SThomas Monjalon 200a46987cfSLuca BoccassiThe `OSS security private mailing list mailto:distros@vs.openwall.org>` will 201a46987cfSLuca Boccassialso be contacted one week before the end of the embargo, as indicated by `the 202a46987cfSLuca BoccassiOSS-security process <https://oss-security.openwall.org/wiki/mailing-lists/distros>` 203a46987cfSLuca Boccassiand using the PGP key listed on the same page, describing the details of the 204a46987cfSLuca Boccassivulnerability and sharing the patch[es]. Distributions and major vendors follow 205a46987cfSLuca Boccassithis private mailing list, and it functions as a single point of contact for 206a46987cfSLuca Boccassiembargoed advance notices for open source projects. 207a46987cfSLuca Boccassi 208baf9fba3SThomas MonjalonThe security advisory will be based on below template, 209baf9fba3SThomas Monjalonand will be sent signed with a security team's member GPG key. 210baf9fba3SThomas Monjalon 211baf9fba3SThomas Monjalon 212baf9fba3SThomas MonjalonPre-Release Mail Template 213baf9fba3SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~ 214baf9fba3SThomas Monjalon 215baf9fba3SThomas Monjalon:: 216baf9fba3SThomas Monjalon 217baf9fba3SThomas Monjalon This is an advance warning of a vulnerability discovered in DPDK, 218baf9fba3SThomas Monjalon to give you, as downstream stakeholders, a chance to coordinate 219baf9fba3SThomas Monjalon the release of fixes and reduce the vulnerability window. 220baf9fba3SThomas Monjalon Please treat the following information as confidential until 221baf9fba3SThomas Monjalon the proposed public disclosure date. 222baf9fba3SThomas Monjalon 223baf9fba3SThomas Monjalon { impact_description } 224baf9fba3SThomas Monjalon 225baf9fba3SThomas Monjalon Proposed patches are attached. 226baf9fba3SThomas Monjalon Unless a flaw is discovered in them, these patches will be merged 227baf9fba3SThomas Monjalon to { branches } on the public disclosure date. 228baf9fba3SThomas Monjalon 229baf9fba3SThomas Monjalon CVE: { cve_id } 230baf9fba3SThomas Monjalon Severity: { severity } 231baf9fba3SThomas Monjalon CVSS scores: { cvss_scores } 232baf9fba3SThomas Monjalon 233baf9fba3SThomas Monjalon Proposed public disclosure date/time: { disclosure_date } at 15:00 UTC. 234baf9fba3SThomas Monjalon Please do not make the issue public (or release public patches) 235baf9fba3SThomas Monjalon before this coordinated embargo date. 236baf9fba3SThomas Monjalon 237baf9fba3SThomas MonjalonIf the issue is leaked during the embargo, the same procedure is followed 238baf9fba3SThomas Monjalonwith only a few days delay between the pre-release and the public disclosure. 239baf9fba3SThomas Monjalon 240baf9fba3SThomas Monjalon 241baf9fba3SThomas MonjalonPrivate Disclosure 242baf9fba3SThomas Monjalon------------------ 243baf9fba3SThomas Monjalon 244baf9fba3SThomas MonjalonIf a vulnerability is unintentionally already fixed in the public repository, 245baf9fba3SThomas Monjalona security advisory is sent to downstream stakeholders 246baf9fba3SThomas Monjalon(`security-prerelease@dpdk.org <mailto:security-prerelease@dpdk.org>`_), 247baf9fba3SThomas Monjalongiving few days to prepare for updating before the public disclosure. 248baf9fba3SThomas Monjalon 249baf9fba3SThomas Monjalon 250baf9fba3SThomas MonjalonPrivate Disclosure Mail Template 251baf9fba3SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252baf9fba3SThomas Monjalon 253baf9fba3SThomas Monjalon:: 254baf9fba3SThomas Monjalon 255baf9fba3SThomas Monjalon This is a warning of a vulnerability discovered in DPDK, 256baf9fba3SThomas Monjalon to give you, as downstream stakeholders, a chance to coordinate 257baf9fba3SThomas Monjalon the deployment of fixes before a CVE is public. 258baf9fba3SThomas Monjalon 259baf9fba3SThomas Monjalon Please treat the following information as confidential until 260baf9fba3SThomas Monjalon the proposed public disclosure date. 261baf9fba3SThomas Monjalon 262baf9fba3SThomas Monjalon { impact_description } 263baf9fba3SThomas Monjalon 264baf9fba3SThomas Monjalon Commits: { commit_ids with branch number } 265baf9fba3SThomas Monjalon 266baf9fba3SThomas Monjalon CVE: { cve_id } 267baf9fba3SThomas Monjalon Severity: { severity } 268baf9fba3SThomas Monjalon CVSS scores: { cvss_scores } 269baf9fba3SThomas Monjalon 270baf9fba3SThomas Monjalon Proposed public disclosure date/time: { disclosure_date }. 271baf9fba3SThomas Monjalon Please do not make the vulnerability information public 272baf9fba3SThomas Monjalon before this coordinated embargo date. 273baf9fba3SThomas Monjalon 274baf9fba3SThomas Monjalon 275baf9fba3SThomas MonjalonPublic Disclosure 276baf9fba3SThomas Monjalon----------------- 277baf9fba3SThomas Monjalon 278baf9fba3SThomas MonjalonOn embargo expiration, following tasks will be done simultaneously: 279baf9fba3SThomas Monjalon 280baf9fba3SThomas Monjalon* The assigned bug is filled by a member of the security team, 281baf9fba3SThomas Monjalon with all relevant information, and it is made public. 282baf9fba3SThomas Monjalon* The patches are pushed to the appropriate branches. 283baf9fba3SThomas Monjalon* For long and short term stable branches fixed, 284baf9fba3SThomas Monjalon new versions should be released. 285baf9fba3SThomas Monjalon 286baf9fba3SThomas MonjalonReleases on Monday to Wednesday are preferred, so that system administrators 287baf9fba3SThomas Monjalondo not have to deal with security updates over the weekend. 288baf9fba3SThomas Monjalon 289baf9fba3SThomas MonjalonThe security advisory is posted 290a46987cfSLuca Boccassito `announce@dpdk.org <mailto:announce@dpdk.org>`_ and to `the public OSS-security 291a46987cfSLuca Boccassimailing list <mailto:oss-security@lists.openwall.com>` as soon as the patches 292a46987cfSLuca Boccassiare pushed to the appropriate branches. 293baf9fba3SThomas Monjalon 294baf9fba3SThomas MonjalonPatches are then sent to `dev@dpdk.org <mailto:dev@dpdk.org>`_ 295baf9fba3SThomas Monjalonand `stable@dpdk.org <mailto:stable@dpdk.org>`_ accordingly. 296baf9fba3SThomas Monjalon 297baf9fba3SThomas Monjalon 298baf9fba3SThomas MonjalonRelease Mail Template 299baf9fba3SThomas Monjalon~~~~~~~~~~~~~~~~~~~~~ 300baf9fba3SThomas Monjalon 301baf9fba3SThomas Monjalon:: 302baf9fba3SThomas Monjalon 303baf9fba3SThomas Monjalon A vulnerability was fixed in DPDK. 304baf9fba3SThomas Monjalon Some downstream stakeholders were warned in advance 305baf9fba3SThomas Monjalon in order to coordinate the release of fixes 306baf9fba3SThomas Monjalon and reduce the vulnerability window. 307baf9fba3SThomas Monjalon 308baf9fba3SThomas Monjalon { impact_description } 309baf9fba3SThomas Monjalon 310baf9fba3SThomas Monjalon Commits: { commit_ids with branch number } 311baf9fba3SThomas Monjalon 312baf9fba3SThomas Monjalon CVE: { cve_id } 313baf9fba3SThomas Monjalon Bugzilla: { bug_url } 314baf9fba3SThomas Monjalon Severity: { severity } 315baf9fba3SThomas Monjalon CVSS scores: { cvss_scores } 316baf9fba3SThomas Monjalon 317baf9fba3SThomas Monjalon 318baf9fba3SThomas MonjalonReferences 319baf9fba3SThomas Monjalon---------- 320baf9fba3SThomas Monjalon 321baf9fba3SThomas Monjalon* `A minimal security response process 322baf9fba3SThomas Monjalon <https://access.redhat.com/blogs/766093/posts/1975833>`_ 323baf9fba3SThomas Monjalon* `fd.io Vulnerability Management 324baf9fba3SThomas Monjalon <https://wiki.fd.io/view/TSC:Vulnerability_Management>`_ 325baf9fba3SThomas Monjalon* `Open Daylight Vulnerability Management 326baf9fba3SThomas Monjalon <https://wiki.opendaylight.org/view/Security:Vulnerability_Management>`_ 327baf9fba3SThomas Monjalon* `CVE Assignment Information Format 328baf9fba3SThomas Monjalon <https://cve.mitre.org/cve/list_rules_and_guidance/cve_assignment_information_format.html>`_ 329