Deployed by sorb, then measured rather than assumed: 56 targets, coverage at a hundred percent, no orphaned report, and the round completing in about two minutes. Every blind spot named in the issue now carries a report and both stale entries are gone. The news is not that the pipeline was broken. It answered reliably for the twenty-nine images it knew about. The other twenty-seven had never been asked, and they carry a hundred and twenty-seven additional critical findings — including the public wiki, both Traefik layers, Prometheus, Grafana, Alertmanager and the scanner's own image. That belongs to #0051, which is updated with the new baseline; one of its candidates is not fixable but removable, since an unused registry tag only entered the set because its repository has fewer tags than the selection depth. Three of my own numbers were wrong and are corrected in place: sixty-five targets became fifty-six, up to sixty-five messages became thirty-nine, and the normalisation changed every alert fingerprint so all known findings reported once more. The last one was foreseeable from Gate 2, where normalisation is already listed as mandatory; I did not follow it through to the alerting layer. The shakiest call of Gate 3 measured better than feared. cAdvisor sees all eight images the compose file declares and four more that appear in no compose file of ours — the registry itself among them. Deriving from the running host beats deriving from its description. A new stolperstein carries the cheapest lesson of the day: a test that rebuilds the unit under test proves the rebuild. Loading the real function exposed within one run that the shipped file ignored its environment entirely.
16 KiB
16 KiB
STATUS
Issues (48 open, 52 closed)
Verteilung: M1 2 · M2 16 · M3 4 · M4 11 · M5 15
Bedeutung der Meilensteine: siehe roadmap.md.
M1 (2)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0106 | high | open | CVE-Scan deckt 52 % — die Zielliste ist handgepflegt und läuft dem Bestand hinterher |
| 0072 | low | open | DSGVO/Datenschutz-Compliance konkretisieren |
M2 (16)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0015 | medium | waiting | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen |
| 0021 | medium | waiting | OVERMIND-03: Windows-Build-VM verschwindet — CI kann sie nur starten, nicht anlegen |
| 0027 | medium | open | AUDIT-01: Acht Widersprüche aus dem LABNET-02-Nachlauf (Selbst-Audit CFGMON-Session) |
| 0034 | medium | open | CFGMON-11 — Gitea-CI-Rückbau abschließen (sicher rückbaubare Schritte) |
| 0073 | medium | open | Architektur: Monorepo-Umbau mit generalisiertem Config-Overlay |
| 0009 | low | open | CFGMON-04: Grafana-Admin-Credentials aus .env gelten nicht für die HTTP-API |
| 0014 | low | open | CFGMON-14: Root-Zugang über die docker-Gruppe umgeht sudo und hinterlässt keine Spur |
| 0019 | low | open | DOC-02: Veralteten wiki-Branch im gitops-Repo entfernen? |
| 0033 | low | open | OVERMIND-01 — element-desktop-build von rohana in die Lab-Registry umziehen |
| 0040 | low | open | neckbeard-Rückmeldungen aus dem Feldtest einreichen |
| 0053 | low | open | Historien-Durchgang: acht nicht-kanonische Commits mitziehen |
| 0061 | low | open | External-Secrets Operator vs. current SOPS setup |
| 0074 | low | open | Cleanup-Checkliste (laufend) |
| 0076 | low | open | Registry-/Git-Traffic zum Gitea-Host ueber privates Hetzner-Netzwerk statt oeffentlichem Internet routen |
| 0085 | low | open | docs/ trägt zwei Altbestände abgeschlossener Umzüge: TASKS.md und oldwiki/ |
| 0105 | low | waiting | Projekt wiki: Verbleib klären — erst unmittelbar vor Projektabschluss |
M3 (4)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0080 | medium | open | Raidplaner mit sozialer Komponente (Verfügbarkeiten, Aufgaben, Roadmap, Fotoalbum) |
| 0081 | medium | open | Gäste-Invite-Workflow per Bot (3-Tage-Accounts, Admin-Freischaltung, begrenzte Reaktivierung) |
| 0094 | medium | open | Direkter Link zur 2FA/Passkey-Einrichtung in den Account-Settings |
| 0092 | low | waiting | Default-Client-Einstellungen (Theme, Features) für Neuinstallationen provisionieren |
M4 (11)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0029 | medium | open | UI harmonisieren: gleiche Farben und Formen über alle Oberflächen |
| 0057 | medium | open | Element Call: VP9 codec retry |
| 0093 | medium | open | Settings normalisieren: Video/Audio-Einstellungen nur im Call-Widget, nicht im Haupt-Client |
| 0096 | medium | waiting | Rebranding: Element → aXion1337 (Web + Desktop, Gesamtklammer) |
| 0022 | low | open | BUILD-01: macOS-Client reproduzierbar bauen — aktuell nur manuell auf sorbs Mac |
| 0086 | low | open | k8s-Ressourcen heißen noch element-web-docs (Rest des ThreadNet-Rebrands) |
| 0087 | low | waiting | Logo für die Authentik-Anmeldemaske entwerfen (Querformat/SVG) |
| 0095 | low | open | Windows-Desktop: Code-Signing (+ Installer-Branding) |
| 0097 | low | open | Feedback-/Bugreport-Weg: eigener Rageshake oder Alternative (Zammad nachhalten) |
| 0100 | low | open | Asset-Pfade tragen weiterhin "element" (themes/element/…) |
| 0101 | low | open | Kaputtes Paket 0.19.2-threadnet.6 in der Registry — Herkunft ungeklärt |
M5 (15)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0051 | high | open | CVE-Remediation-Pass: Schwachstellen-Report abarbeiten |
| 0065 | high | open | K3s API security hardening |
| 0058 | medium | open | Web Application Firewall (WAF) |
| 0059 | medium | open | Pod Security Admission (Restricted) |
| 0062 | medium | open | Renovate/Dependabot for chart and image updates |
| 0063 | medium | open | Security advisory monitoring (ESS/Element) |
| 0064 | medium | open | Disable automountServiceAccountToken where not needed |
| 0066 | medium | open | auditd for file integrity & syscall audit |
| 0067 | medium | open | Kernel hardening (sysctl) |
| 0068 | medium | open | Lynis security baseline |
| 0069 | medium | open | CrowdSec integration |
| 0070 | medium | open | Falco runtime monitoring |
| 0071 | low | open | Trivy image scanning for CVEs |
| 0089 | low | open | Eigene Images sind unsigniert — beim Deploy prüft nichts die Herkunft |
| 0090 | low | open | Kein Kubernetes-Audit-Log — Zugriffe an der API werden nicht protokolliert |
Active design docs (1)
| Design | Gate | Title |
|---|---|---|
| 2026-08-21-cve-ziele-ableiten | gate-4 | Design: Die CVE-Zielmenge ableiten statt pflegen (#0106) |
ADRs (26)
| ADR | Status | Title |
|---|---|---|
| 0001 | accepted | 0001 — git.lab ist kanonisch, Gitea wird per Push-Mirror beliefert |
| 0002 | superseded | 0002 — Issues und Management-Repo ziehen ins Lab („das Lab ist die Quelle der Wahrheit") |
| 0003 | accepted | 0003 — CVE-Meldeweg: aggregierte Alarme, eigener Security-Raum, gleicher Bot |
| 0004 | accepted | 0004 — Site-to-Site-VPN Hetzner-Projektnetz ↔ Lab, schaltbar über die UDM |
| 0005 | accepted | 0005 — Projektmanagement: Kanban-Rückgrat mit leichten Scrum-Elementen |
| 0006 | superseded | 0006 — Wikis ins Lab konsolidieren, Docusaurus als gemeinsame Lesefläche |
| 0007 | superseded | 0007 — Wiki-Oberfläche: Docusaurus läuft, BookStack als Gegenentwurf |
| 0008 | accepted | 0008 — Agenten-Sessions auf CFGMON laufen root-äquivalent über die docker-Gruppe |
| 0009 | accepted | 0009 — Commit-Konventionen und rückwirkende Anonymisierung der Historie |
| 0010 | accepted | 0010 — Härtung ist ein eigener Meilenstein (M5); M1 misst nur Kaputtes |
| 0011 | accepted | 0011 — Provisionierung verweigert Localpart-Kollisionen, statt an bestehende Konten zu verknüpfen |
| 0012 | accepted | ADR-0012: Issues leben im Repo; GitLab wird deterministisch bespiegelt |
| 0013 | accepted | ADR-0013: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft |
| 0014 | accepted | 0014 — Wiki.js löst Docusaurus ab: abgeschottete Betriebs-/Anwenderdoku, docs-as-code |
| 0015 | accepted | 0015 — Wiki.js Git-Storage: Inhalt fließt Cluster→Gitea→kanonisiert nach git.lab |
| 0016 | accepted | 0016 — Das Notfallhandbuch bleibt lab-intern und wird nicht gespiegelt |
| 0017 | accepted | 0017 — Split-DNS auf CFGMON: vier Zonen statt einer, je Zone begründet |
| 0018 | accepted | 0018 — KI-Geräuschunterdrückung in threadnet-call: client-seitig, opt-in, selbst ausgeliefert |
| 0019 | accepted | ADR-0019: Komponenten-Issues in docs/issues/ adoptiert — eine Nummernwelt für die Gruppe |
| 0020 | accepted | ADR-0020: Bekannte Befunde werden quittiert, damit Rot wieder etwas bedeutet |
| 0021 | accepted | ADR-0021: Föderation wird geschlossen — leere Whitelist statt offener Tür |
| 0022 | accepted | ADR-0022: Anschluss an Upstream durch einen einmaligen Merge, nicht durch einen geteilten Graft |
| 0023 | accepted | ADR-0023: Fremde Historie von der Git-Hygiene ausnehmen — erklärt, nicht global |
| 0024 | accepted | ADR-0024: Drei Framework-Dateien sind erklärt erweitert — Diff-Referenz statt Byte-Vergleich |
| 0025 | accepted | ADR-0025: Egress-Ausnahmen werden als CIDR gepinnt — außer hinter einem CDN |
| 0026 | proposed | ADR-0026: Prüfziele werden abgeleitet, nicht gepflegt — und das Ausbleiben der Herleitung alarmiert |
Open AARs (6)
- AAR — Alle geplanten Prüfungen waren dauerhaft rot und meldeten damit nichts mehr
- AAR — Nach der Freischaltung sendete Safari ungefiltert weiter
- AAR —
v0.6.0-rc.2brach die Raumliste in Produktion - AAR — Drei DKIM-Einträge verschwanden bei der DMARC-Härtung
- AAR — Game-Host-Anbindung: Deploy über zwei Übergaben, Ursache war nie die Firewall
- AAR — rohana lief voll, der ThreadNet-Web-Spiegel riss
Fehlerklassen (18)
offen (7)
- Die AAR-Pflicht setzt sich ohne Werkzeug nicht durch
- Prüfungen erzeugen Befunde, die niemand beheben kann
- Ein gleichzeitiger, sachfremder Defekt wird der eigenen Änderung angelastet
- Issues behaupten Zustände, die längst überholt sind
- Eine Datei kann nicht maßgeblich und zugleich unveränderlich sein
- Ein nachgebauter Test prüft den Nachbau
- Eine Quittung bezeugt Aufmerksamkeit, nicht Vollständigkeit
teilweise gedeckt (3)
- Gelesene Anweisungen werden nicht befolgt — neckbeard v0.3.0
- Regeln ohne maschinellen Widerspruch werden nicht befolgt — neckbeard v0.3.0
- Der Upgrade-Pfad ins Rahmenwerk war beschrieben, nie begangen — neckbeard v0.3.1
geerntet (4)
- Dashboards und Prüfungen ohne Datenbeleg — neckbeard v0.1.3
- Dokumente werden ergänzt, aber nicht revidiert — neckbeard v0.1.3
- Gesperrte Dateien werden bearbeitet — neckbeard v0.2.0
- „Meldet Erfolg, ist aber blind" — die häufigste Fehlerklasse dieses Projekts — neckbeard v0.1.3
vom Rahmenwerk nicht abgedeckt — bleibt unseres (2)
- Dokumente werden angelesen, nicht durchgelesen — neckbeard v0.1.3
- Werkzeuge messen unbemerkt die falsche Instanz — neckbeard v0.1.3