Skip to content

Commit e8bf1bc

Browse files
committed
Record the release-note convention that a CVE-bearing fix is cross-referenced between its defects-fixed entry and the security advisory block, with 1.78 as the worked example.
1 parent 9885fd6 commit e8bf1bc

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

docs/claude/conventions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ The `iana` arc is *not* dual-located: `org.bouncycastle.asn1.iana.IANAObjectIden
152152

153153
Defects fixed and additional features go into `docs/releasenotes.html` under the **current** unreleased version block (e.g. section 2.1 with header "Release: 1.85"). Each entry is a single `<li>...</li>` referencing the GitHub issue number where applicable. The file is hand-edited HTML; preserve the existing prose style and `<ul>` structure.
154154

155+
A CVE-bearing fix appears **twice** in its release's block: once as the "Defects Fixed" entry describing what was wrong, and once in the "Security Advisories" `<ul>` (`Release <ver> deals with the following CVEs:`) as `<li>CVE-YYYY-NNNNN - <one-line summary>.</li>`, kept in ascending CVE-number order. **Cross-reference the two**: close the Defects Fixed entry with a trailing `(CVE-YYYY-NNNNN)` before the `</li>` so a reader of the defect list can find the advisory, and vice versa. Historically the two lists were left unlinked; the 1.78 block was brought into line retroactively in `b1e21a374d` and is the worked example of the finished shape — all five of its advisory CVEs now carry a cross-reference in both directions. Do the same for new entries from now on. If an advisory has no matching Defects Fixed entry at all, that is a gap to fill rather than a case for skipping the cross-reference: 1.78 was missing entries for both CVE-2024-14041 (KyberSlash) and CVE-2024-29857 (crafted F2m EC parameters), and the fix is to write the defect entry from what the commits actually changed — for CVE-2024-29857, the `m` bound added to `ECCurve.F2m.buildField` in `efc498ca4c` / `fee80dd230` — not to paraphrase the advisory line.
156+
155157
## Version bumps touch more than the build props — the OpenPGP armor stamp is easy to miss
156158

157159
Changing the BC version (opening a dev cycle, cutting a release) is a fixed, multi-file edit, and the version string is stamped in several places besides the build properties. Update **all** of these together:

docs/releasenotes.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ <h3>2.10.5 Security Advisories.</h3>
717717
Release 1.78 deals with the following CVEs:
718718
</p>
719719
<ul>
720-
<li>CVE-2024-14041 - Possible timing based leakage of the private key in ML-KEM (Kyber) decapsulation due to non-constant time division in the ciphertext compression functions ("KyberSlash").</li>
720+
<li>CVE-2024-14041 - Possible timing based leakage of the private key in ML-KEM (Kyber) decapsulation due to non-constant time division in the message decoding and ciphertext compression functions ("KyberSlash").</li>
721721
<li>CVE-2024-29857 - Importing an EC certificate with specially crafted F2m parameters can cause high CPU usage during parameter evaluation.</li>
722722
<li>CVE-2024-30171 - Possible timing based leakage in RSA based handshakes due to exception processing eliminated.</li>
723723
<li>CVE-2024-30172 - Crafted signature and public key can be used to trigger an infinite loop in the Ed25519 verification code.</li>

0 commit comments

Comments
 (0)