From 7f5745d6018617865ff201f69ef284b37261683d Mon Sep 17 00:00:00 2001 From: Spencer Wilson Date: Thu, 19 Dec 2024 14:09:58 -0500 Subject: [PATCH 01/18] Add post-mortem report template Signed-off-by: Spencer Wilson --- security/reports/YYYYMMDD-template.md | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 security/reports/YYYYMMDD-template.md diff --git a/security/reports/YYYYMMDD-template.md b/security/reports/YYYYMMDD-template.md new file mode 100644 index 0000000..785f53a --- /dev/null +++ b/security/reports/YYYYMMDD-template.md @@ -0,0 +1,72 @@ +# OQS Vulnerability Response Report + + + +## Information + + + +## Process + +### 1. Intake + + + +### 2. Assessment + + + +### 3. Patching + + + +### 4. CVE assignment + + + +### 5. Public disclosure + + + +### 6. Feedback + + + From 9549681c926fb921de8ac4f2f8e3f92ed4a08834 Mon Sep 17 00:00:00 2001 From: Spencer Wilson Date: Thu, 19 Dec 2024 14:42:56 -0500 Subject: [PATCH 02/18] Add security report for CVE-2024-54137 Signed-off-by: Spencer Wilson --- security/reports/20241220-hqc-decaps.md | 106 ++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 security/reports/20241220-hqc-decaps.md diff --git a/security/reports/20241220-hqc-decaps.md b/security/reports/20241220-hqc-decaps.md new file mode 100644 index 0000000..5949096 --- /dev/null +++ b/security/reports/20241220-hqc-decaps.md @@ -0,0 +1,106 @@ +# OQS Vulnerability Response Report + + + +## Information + + + +See https://github.com/open-quantum-safe/liboqs/security/advisories/GHSA-gpf4-vrrw-r8v7 + +## Process + +### 1. Intake + + + +We received an initial report from Quarkslab researchers Célian Glénaz and Dahmun Goudarzi via GitHub on 17 September 2024. +Due to GitHub configuration issues, we were unaware of the report until 24 October, when the reporters left a follow-up comment. +We did not respond to the reporters until completing the Assessment phase. + +### 2. Assessment + + + +Douglas shared the report with Spencer, who was the team member most familiar with the affected code (the HQC implementation). +Spencer confirmed the report's findings and responded to the reporters on GitHub on 6 November. +The vulnerability was present in upstream code (https://pqc-hqc.org) and pulled into the library via PQClean. +Spencer notified the "main" and "backup" contacts listed on the upstream source's website after coordinating with the reporters. +The only subproject directly affected (by including vulnerable code) was liboqs. +It was believed that liboqs-rust was also affected; however, this turned out not to be the case. + +Douglas and Spencer consulted and decided not to create a dedicated security release for two reasons: +1. The 0.12.0 release of liboqs was imminent, so a patch could be included there. +2. HQC was still an experimental algorithm. + +### 3. Patching + + +Spencer created a temporary private fork via the draft GitHub advisory and developed a PR with a fix using the `copy_from_upstream` patch mechanism. +One of the reporters reviewed and approved the PR. +The fix was merged into liboqs main branch on 21 November. +Due to liboqs GitHub settings, the PR from the private fork could not be merged directly. +It was necessary for an administrator (in this case, Ry Jones) to override these settings and commit to main. + +### 4. CVE assignment + + +GitHub assigned CVE-2024-54137. + +### 5. Public disclosure + + +The security advisory was published on 6 December. +Version 0.12.0 of liboqs was released on 9 December, with a note about the vulnerability in its release notes: https://github.com/open-quantum-safe/liboqs/releases/tag/0.12.0 + +Spencer submitted the fix to PQClean (https://github.com/PQClean/PQClean/pull/578) on 10 December. +This led to a related security advisory being published for the pqcrypto Rust crate: https://github.com/PQClean/PQClean/security/advisories/GHSA-753p-wrj5-g8fj + +### 6. Feedback + + + +We observed the following obstacles throughout the process: +- Our initial response was very slow due to misconfiguration of GitHub notifications. + This has hopefully been amended. +- Merging the patch required "admin"-level access on GitHub. + Based on GitHub logs, this seems to be due to liboqs settings requiring a pull request for all commits. + Apparently, a PR from a private fork does not count. From 746fb6e38bb4f3a136dfca008c4c6025f3b3a348 Mon Sep 17 00:00:00 2001 From: Spencer Wilson Date: Fri, 3 Jan 2025 11:48:17 -0500 Subject: [PATCH 03/18] Add security response process Signed-off-by: Spencer Wilson --- README.md | 4 + security/reports/20241220-hqc-decaps.md | 2 +- security/reports/YYYYMMDD-template.md | 2 +- security/response-process.md | 249 ++++++++++++++++++++++++ 4 files changed, 255 insertions(+), 2 deletions(-) create mode 100644 security/response-process.md diff --git a/README.md b/README.md index 48e6f4a..43096d1 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,7 @@ Subscribe and access list archives at [https://lists.pqca.org/g/oqs-tsc](https:/ ### Discord Join the [PQCA Discord server](https://discord.gg/gv8YN5bb) and reach us on the [#oqs-general](https://discordapp.com/channels/1202723482224295936/1203395992003678238) channel. + +## Security + +OQS responds to security reports following a [coordinated vulnerability disclosure process](security/response-process.md), informed by current Open Source Software Foundation [guidelines](https://github.com/ossf/oss-vulnerability-guide). diff --git a/security/reports/20241220-hqc-decaps.md b/security/reports/20241220-hqc-decaps.md index 5949096..f11ab07 100644 --- a/security/reports/20241220-hqc-decaps.md +++ b/security/reports/20241220-hqc-decaps.md @@ -1,4 +1,4 @@ -# OQS Vulnerability Response Report +# OQS Vulnerability Response Report: 20241220-hqc-decaps