Skip to content

Commit ef3c914

Browse files
hyperpolymathclaude
andcommitted
docs(security): triage log for 5 Dependabot alerts (2 closed, 3 deferred)
Records the 2026-04-18 triage of the 5 open low-severity Dependabot alerts on hyperpolymath/standards: - Closed: 2× rustls-webpki advisories (GHSA-xgp8 + GHSA-965h) via the 0.103.12 lockfile bump in the preceding commit. - Deferred: 3× rand (<0.9.3) advisories (GHSA-cq8v) in k9-sign / k9-init / enterprise-service. Deferral reason captured per manifest — all three are either blocked by upstream ecosystem (ed25519-dalek 3.x still pre-release; tera 1.x + axum-test still pin rand 0.8) or non-reachable (advisory only fires when a custom global logger re-enters rand::rng(), which none of the three codebases do). Keeps a durable record so the next security review sees what was triaged, why, and under what re-evaluate trigger. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent fb792b3 commit ef3c914

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

SECURITY-ADVISORIES.adoc

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
// (MPL-2.0 is automatic legal fallback until PMPL is formally recognised)
3+
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
5+
= Security advisories — triage log
6+
:toc:
7+
:toclevels: 2
8+
9+
Triaged record of open / deferred / closed Dependabot advisories against
10+
`hyperpolymath/standards`. Updated whenever an advisory is resolved or a
11+
deferral is re-evaluated.
12+
13+
== Closed
14+
15+
=== GHSA-xgp8-3hg3-c2mh + GHSA-965h-392x-2mh5 (rustls-webpki, low, 2026-04-18)
16+
17+
`rustls-webpki` 0.103.10 → 0.103.12 in
18+
`rhodium-standard-repositories/satellites/rsr-certifier/Cargo.lock`.
19+
Transitive dep, Cargo.lock-only bump. Both advisories closed by the
20+
same upstream patch level.
21+
22+
== Deferred (with reason)
23+
24+
=== GHSA-cq8v-f236-94qc — `rand` < 0.9.3 (3 locations, low, triaged 2026-04-18)
25+
26+
*Advisory:* `rand::rng()` is unsound when a custom global logger
27+
invokes the default RNG from inside its logging hook. First patched
28+
version: `rand` 0.9.3. Severity: low.
29+
30+
*Affected manifests, and exposure assessment:*
31+
32+
[cols="1,2,1,3"]
33+
|===
34+
|Manifest |Path to `rand` |Exposure |Blocker
35+
36+
|`k9-svc/k9-sign/Cargo.toml`
37+
|Direct declaration (`rand = "0.8"`) + `ed25519-dalek` 2.2 for Ed25519 keygen.
38+
|Production. Uses `rand::rngs::OsRng` as the CSPRNG for signing-key generation — never invokes the global `rand::rng()` path that the advisory targets.
39+
|`ed25519-dalek` 2.x requires `rand_core` 0.6; only `ed25519-dalek` 3.0 (currently pre-release `3.0.0-pre.6`) uses `rand_core` 0.9. Stable-track upgrade blocked until `ed25519-dalek` 3.x stabilises upstream.
40+
41+
|`k9-svc/tools/src/k9-init/Cargo.lock`
42+
|Transitive via `tera` 1.20 → `rand` 0.8.5; also `phf_generator` → `chrono-tz-build` (build-dep only).
43+
|Build-time / template-render only. `k9-init` does not install a custom global logger.
44+
|`tera` 1.x still pins `rand` 0.8. Fix requires upstream `tera` 2.x migration (or a replacement template engine).
45+
46+
|`rhodium-standard-repositories/examples/enterprise-service/Cargo.lock`
47+
|Dev-dependency via `axum-test` → `rust-multipart-rfc7578_2`.
48+
|Test-time only. `enterprise-service` does not ship any binary that embeds `axum-test`.
49+
|`rust-multipart-rfc7578_2` still depends on `rand` 0.8. Fix requires upstream (or replacing `axum-test` in dev-deps).
50+
|===
51+
52+
*Re-evaluate trigger:* once `ed25519-dalek` 3.0 goes stable OR
53+
`tera` / `axum-test` upstream publish a release that uses `rand` 0.9+,
54+
re-run the triage and either bump or re-defer.
55+
56+
*Decision:* Deferred. All three exposures are either non-reachable
57+
(none of the three codebases installs a custom global logger that
58+
re-enters the RNG) or non-production (dev-dep / build-dep only). Low
59+
severity is consistent with that residual-risk picture.

0 commit comments

Comments
 (0)