Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Adversary Findings

Spec review (pre-architect)

Date: 2026-04-12 Status: Complete — all critical/high resolved

SeverityCountStatus
Critical5All resolved
High32All resolved
Medium23Tracked
Low4Tracked

See specs/findings/INDEX.md for the full list.

Architecture review

Date: 2026-04-13 Status: Complete — all critical/high resolved

SeverityCountStatus
Critical4All resolved
High41All resolved

Implementation sweep (post-M7)

Date: 2026-09-15 Status: Complete — 3 Critical resolved, 6 High tracked

SeverityCountStatus
Critical3All resolved (WAL compaction, unsigned units, key permissions)
High6Tracked (SLSA fail-open, WAL replay, spawn depth, scope checker, witness verification, TOML injection)
Medium12Tracked
Low8Tracked
Info1Noted

See specs/findings/adversary-implementation-sweep.md for the full list.

Resolved Critical findings

IDTitleResolution
F-011Compaction deletes old segments before writing new onesWrite-then-delete: new segment is fsynced before old segments are removed
F-016Default graph accepts unsigned unitsDocumented: verifier is None by default in M5 local mode; must be explicitly enabled via with_verifier()
F-026Private key file world-readableUse OpenOptions::mode(0o600) on Unix; non-Unix fallback via std::fs::write

Remaining High findings (tracked)

IDTitleComponent
F-008Empty builder_signature accepted by default — fail-opentaba-security/provenance.rs
F-012replay ignores the from parameter — replays from beginningtaba-node/wal.rs
F-017Spawn depth taken from unit’s own declaration, not computedtaba-graph/graph.rs
F-018Scope checker not invoked for workload units (and None by default)taba-graph/graph.rs
F-020declare_failed does not verify witnesses are known or distincttaba-gossip/swim.rs
F-028TOML injection via K8s metadata — unsanitized interpolationtaba-k8s/converter.rs