-
released this
2026-09-22 21:02:29 +02:00 | 0 commits to main since this release[0.9.5] - 2026-09-22
Transcript-Version & Upgrade-MAC (F-04, F-05)
Dieses Patch-Release schließt die verbliebenen Bindungs- und Zustands-Schwachstellen im Format-V3-Kryptosystem:
- F-04 (MITTEL): Schließung des unbegrenzten LegacyValid-Rollback-Fensters:
- Problem: In v0.9.4 blieb
LegacyValidzeitlich unbegrenzt aktiv. Ein Angreifer mit Container-Schreibzugriff konnte nach einem legitimen 0.9.4-Mount einen alten 0.9.3-MAC-Blob und alte Chunk-Zeilen replizieren, was zu einem unbemerkten Content-Rollback führte. - Fix: Erweiterung des HMAC-Transcript-Inputs um
transcript_ver(Little-Endian u32):
b"SANCTUM_META_V3\0" || metadata_gen (LE64) || transcript_ver (LE32) || canonical. transcript_ver = 2: Format v0.9.4+ (Knoten + sortierte Chunk-Tupel(node_id, chunk_index, generation)).- Verifikations-Kaskade:
- Prüfung mit
ver=2und aktuellem V2-Transcript ->Valid. (Verhindert jeglichen Legacy-Fallback, wenn V2 passt). - Schlägt V2 fehl und ist
transcript_ver >= 2in SQLite hinterlegt -> striktInvalid(schließt Replay alter 0.9.3-Blobs nach Rebind aus). - Schlägt V2 fehl und ist
transcript_ver < 2(Altsystem):- Prüfung gegen natives 0.9.4-Transcript (ohne Versionsfeld + V2-Transcript) ->
NeedsTranscriptVer. - Prüfung gegen natives 0.9.3-Transcript (ohne Versionsfeld oder ver=1 + Legacy-Transcript) ->
LegacyValid.
- Prüfung gegen natives 0.9.4-Transcript (ohne Versionsfeld + V2-Transcript) ->
- Andernfalls -> strikt
Invalid.
- Prüfung mit
- Transparentes Rebind beim Mounten: Sowohl
NeedsTranscriptVerals auchLegacyValidwerden beim regulären Mounten transparent auftranscript_ver = 2migriert. - Datenbankschema: Ergänzung der Spalte
transcript_ver INTEGER NOT NULL DEFAULT 1in Tabellemeta.
- Problem: In v0.9.4 blieb
- F-05 (NIEDRIG / Verfügbarkeit): Atomare MAC-Persistierung & Zombie-Container-Reparatur:
- Problem:
upgrade_to_v3committeteversion = 3in der Datenbank vor dem Errechnen und Schreiben des initialen Metadaten-MACs. Ein Absturz in diesem Fenster hinterließ einen Zombie-Container (version = 3,metadata_mac IS NULL), der nicht mehr gemountet werden konnte. - Fix: Berechnung und Schreiben des Metadaten-MACs (mit
transcript_ver = 2,gen = 1) innerhalb der identischen atomaren SQLite-Transaktion wie die Chunk-Umschlüsselung vortx.commit(). - Reparaturpfad: Befindet sich ein Container im Zombie-Zustand (
version >= 3,metadata_mac IS NULL,restore_nonce IS NULL), repariertsanctum upgrade-formatdiesen automatisch durch Errechnen und Persistieren des V2-MACs. - Fail-Closed Guard: Ist
restore_nonce IS NOT NULL, bricht die Reparatur strikt ab, um die Autorisierungsgarantien von F-02 (--rebuild-mac/ interaktives"JA") zu bewahren. - Mount-Führung: Beim Versuch, einen Zombie-Container zu mounten, weist Sanctum den Benutzer gezielt auf
sanctum upgrade-formathin.
- Problem:
Downloads
- F-04 (MITTEL): Schließung des unbegrenzten LegacyValid-Rollback-Fensters: