diff --git a/docs/design/2026-08-21-cve-remediation.md b/docs/design/2026-08-21-cve-remediation.md index 2b02c40..6047b0f 100644 --- a/docs/design/2026-08-21-cve-remediation.md +++ b/docs/design/2026-08-21-cve-remediation.md @@ -534,3 +534,38 @@ liefen die ganze Zeit (`Released=True InstallSucceeded`); der `source-controller baute nur seinen Artefakt-Bestand neu auf. Nach dem Abwarten: beide `True`. Hätte ich beim ersten Blick zurückgerollt, hätte ich einen Vorgang abgebrochen, der gerade richtig lief. + +### Haufen A, vierter Posten: der Betriebs-Stack (Übergabe nötig) + +Die Images auf dem Betriebs-Host trugen **30 CRITICAL und 676 HIGH**. Fünf +Fassungszeilen entfernen davon **14 und 278** — jedes Ziel vorher gescannt: + +| Image | CRITICAL | HIGH | +|---|---|---| +| `trivy` 0.58.2 → **0.74.0** | 4 → **0** | 98 → **0** | +| `grafana` 12.0.0 → **12.4.9** | 7 → **1** | 70 → **3** | +| `prometheus` v3.3.1 → **v3.14.0** | 2 → **0** | 46 → **2** | +| `alertmanager` v0.28.1 → **v0.34.0** | 1 → **0** | 41 → **2** | +| `node-exporter` v1.9.1 → **v1.12.1** | 1 → **0** | 38 → **8** | + +⚠️ **Drei Kandidaten wurden gemessen und verworfen — das ist der Zweck des +Messens:** + +- **Grafana 13.2.0** räumt zwar alle sieben CRITICAL ab, treibt HIGH aber von + **70 auf 162**. Der Minor-Sprung innerhalb der 12er-Reihe schlägt den + Major-Sprung deutlich — und spart obendrein das Dashboard-Risiko. +- **cadvisor v0.55.1** bringt 5 → 4 CRITICAL. Kaum Gewinn; nicht angefasst. + (Auf gcr.io endet die Reihe bei v0.55.1, die GitHub-Fassung v0.60.5 gibt es + dort nicht.) +- **`python:3.13-slim`** ist unverändert. Der gleitende Tag lässt einen alten + Build vermuten — der Host hält aber bereits den aktuellen. Ein Neuziehen + bringt nichts. Das ist der zweite Fall heute, in dem die Vermutung „gleitender + Tag ⇒ veraltet" falsch war (der erste war Wiki.js, dort andersherum). + +**Gegen die neuen Werkzeuge geprüft, nicht gegen die alten:** `promtool v3.14.0` +nimmt `prometheus.yml` samt beider Regeldateien (20 + 5 Regeln) und besteht die +Regeltests; `amtool v0.34.0` nimmt `alertmanager.yml`. + +⚠️ **Braucht eine Übergabe** — Commit `516641b` in `threadnet-operating`, auf dem +Betriebs-Host auszurollen. Beim Neuerzeugen wandert auch der Scanner selbst +(`trivy`) mit, und die Zielmenge kommt frisch. diff --git a/docs/ledger/2026-08-21-cve-remediation.md b/docs/ledger/2026-08-21-cve-remediation.md index ed00293..52c1b5b 100644 --- a/docs/ledger/2026-08-21-cve-remediation.md +++ b/docs/ledger/2026-08-21-cve-remediation.md @@ -39,6 +39,7 @@ Nachfrage erfuellt wurde (`docs/wiki/stolpersteine/aar-pflicht-ohne-werkzeug.md` | Haufen C | 4758e35, 59c75c8 | DONE_WITH_CONCERNS | Einengung gebaut; ⚠️ der erste Commit war UNGETESTET, siehe Notes. Wirkt erst nach Redeploy auf CFGMON. | | cert-manager 1–7 | 93155c2 … 13aecc8 | DONE | v1.14.0 -> v1.21.1 in sieben Stufen, je 3/3 Deployments und 15/15 Zertifikate. | | Flux | fcf3169 | DONE | Vier Controller auf den v2.9.4-Satz; 14 CRITICAL -> 0, 231 HIGH -> 48. | +| Betriebs-Stack | 516641b | DONE_WITH_CONCERNS | Fuenf Fassungszeilen, -14 CRITICAL / -278 HIGH; ⚠️ wirkt erst nach Ausrollen auf dem Betriebs-Host. | ## Ladder @@ -51,6 +52,7 @@ Nachfrage erfuellt wurde (`docs/wiki/stolpersteine/aar-pflicht-ohne-werkzeug.md` | ob Flux beim Fehlschlag etwas Eigenes tut | CRD: `strategy` defaults to `rollback`, Remediation zwischen jedem Versuch, `remediateLastFailure` bei retries>0 ebenfalls scharf | built: eine Entschaerfung (`retries: 0`) fuer die Dauer des Sprungs — die einzige gebaute Sache, die nicht Fassungsnummer war | df6d291 | | ob es ein neueres Wiki.js-Image gibt | `2.5` (gleitend) traegt 12 CRITICAL, das „neuere" Release-Tag `2.5.277` traegt 40 | reused: der laufende Stand — das Update waere eine Verschlechterung gewesen | | | ob Draupnir eine neuere Fassung hat | `v3.1.0` ist die neueste; `develop` ist kein Release | reused: nichts angefasst — „Paket hat einen Fix" heisst nicht „es gibt ein Image damit" | | +| ob die neueste Fassung wirklich die beste ist, bevor sie gesetzt wird | Grafana 13.2.0 raeumt 7 CRITICAL ab, treibt HIGH aber 70 -> 162; 12.4.9 macht 7 -> 1 und 70 -> 3 | reused: die 12er-Reihe statt des Major-Sprungs — gemessen, nicht nach Nummer gewaehlt | 516641b | | ein Manifest fuer genau unseren Flux-Komponentensatz, statt das Release-Manifest zu nehmen | `install.yaml` traegt 7 Deployments, wir betreiben 4 — das CLI erzeugt den passenden Satz | reused: `flux install --export --components=...` statt Handfilterung von 270 kB YAML | fcf3169 | | eine Quelle fuer die Einengung von Haufen C, statt einer Ausschlussliste | die Herleitung bildet den laufenden Bestand ohnehin | reused: dieselbe Menge als Filter — keine zweite Liste (ADR-0026) | 4758e35 |