Gegenbuch: Unsicherheit erreicht jetzt den Rueckgabecode (Pentest R179)
R179-b: Der Rewind-Vorbehalt stand in der Ausgabe, der Exit blieb 0. Die eigene README sagt "fuer Cron gilt: jeder Code ausser 0 gehoert gemeldet" - der Zustand "ich bin an dieser Stelle blind" erreichte die Ueberwachung also nie. Dieselbe Klasse wie R174, eine Ebene hoeher. Fix: Code 0 nur bei belegter Gewissheit (Rewind-Schutz zugesichert oder Mindesthoehe erfuellt), sonst Code 3 - bewusst nicht mit dem Manipulationsalarm 2 verschmolzen. R179-01: NOTARY_MIN_SEQ ist eine Untergrenze, kein Ist-Stand. Ein veralteter Wert liess einen Teil-Rewind darueber lautlos durch, und die blosse Praesenz einer Zahl blendete den Vorbehalt aus - MIN_SEQ=0 war ein Freibrief, ein Tippfehler wurde still verschluckt. Ein veralteter Anker erzeugte damit ein selbstbewussteres Ergebnis als gar keiner. Fix: Der Vorbehalt haengt allein an NOTARY_REWIND_PROTECTED=true und benennt bei gesetztem MIN_SEQ dessen Grenze; MIN_SEQ <= 0 oder unparsbar fuehrt zu exit 1 statt stiller Annahme. Verifiziert gegen den Pentest-Aufbau (10 Checkpoints, Rewind auf 7, DB passend gekuerzt, frischer Klon): nicht gesetzt -> exit 3 (vorher 0); 10 und 8 -> Alarm 2; 7 veraltet -> 0 mit Vorbehalt (vorher ohne); 0 und xyz -> exit 1 (vorher stilles 0); Rewind-Schutz zugesichert -> 0 ohne Vorbehalt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,37 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **🚦 Gegenbuch: Unsicherheit erreicht jetzt den Rueckgabecode (Pentest R179)** (2026-08-18)
|
||||
- **R179-b – der wichtigere Punkt:** Mein Rewind-Vorbehalt stand in der
|
||||
Ausgabe, der Exit blieb **0**. Meine eigene README sagt „fuer Cron gilt:
|
||||
jeder Code ausser 0 gehoert gemeldet“ – der Zustand „ich bin an dieser
|
||||
Stelle blind“ erreichte die Ueberwachung also **nie**. Dieselbe Klasse wie
|
||||
R174 (vergrabener Vorbehalt), eine Ebene hoeher.
|
||||
Fix: Code **0 nur bei belegter Gewissheit** – entweder ist serverseitiger
|
||||
Rewind-Schutz zugesichert oder eine mitgegebene Mindesthoehe wurde
|
||||
erfuellt. Sonst **Code 3**, dieselbe Bedeutung wie beim unerreichbaren
|
||||
Remote und bewusst NICHT mit dem Manipulationsalarm (2) verschmolzen.
|
||||
- **R179-01 (MEDIUM)** – `NOTARY_MIN_SEQ` ist eine **Untergrenze**, kein
|
||||
Ist-Stand. Ein veralteter Wert liess einen Teil-Rewind darueber lautlos
|
||||
durch; schlimmer: die blosse **Praesenz** einer Zahl blendete den Vorbehalt
|
||||
aus, ein `MIN_SEQ=0` war damit ein Freibrief und ein Tippfehler (`NaN`)
|
||||
wurde still verschluckt. Ein veralteter Anker erzeugte so ein
|
||||
**selbstbewussteres Ergebnis als gar keiner**.
|
||||
Fix: Der Vorbehalt haengt jetzt allein an der ausdruecklichen Zusicherung
|
||||
`NOTARY_REWIND_PROTECTED=true`; bei gesetztem MIN_SEQ benennt er zusaetzlich
|
||||
die Grenze („deckt nur ab, was UNTERHALB dieser Nummer fehlt“).
|
||||
`MIN_SEQ` ≤ 0 oder unparsbar → **exit 1** mit Erklaerung statt stiller
|
||||
Annahme.
|
||||
- Verifiziert gegen seinen Aufbau (10 Checkpoints, Rewind auf 7, DB passend
|
||||
gekuerzt, frischer Auditoren-Klon):
|
||||
nicht gesetzt → **exit 3** (vorher 0) · 10 → Alarm 2 · 8 → Alarm 2 ·
|
||||
7 (veraltet) → 0, aber **mit Vorbehalt** (vorher ohne) · 0 / `xyz` →
|
||||
**exit 1** (vorher stilles 0) · Rewind-Schutz zugesichert → 0 ohne
|
||||
Vorbehalt. Labor und Port geraeumt.
|
||||
- Seine Positivkontrolle bestaetigt und uebernommen: „in der Mitte gewaschen“
|
||||
ist dicht, weil der Kopf-Hash bei `atId=letzter.maxId` alles darunter
|
||||
abdeckt – die Reconciliation nur des letzten Checkpoints genuegt.
|
||||
|
||||
- [x] **🔄 Gegenbuch: Rewind auf signierten Praefix benennbar gemacht (Pentest R178-01)** (2026-08-18)
|
||||
- Fund: Mein Signatur-Gate faengt Force-Push mit **fremder oder unsignierter**
|
||||
Historie – aber ein **Rewind auf einen aelteren, echt signierten Stand**
|
||||
|
||||
Reference in New Issue
Block a user