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

I25 · Post-commit bookkeeping (security-floor derivation, the committed generation’s override …

planarian @ a924e09 · Spec v4.6 · snapshot main · all versions

Post-commit bookkeeping (security-floor derivation, the committed generation’s override content, session accounting) runs on every path that writes Committed for a generation transaction: the daemon’s, the watchdog’s, the boot-only confirmation’s. A commit whose floor record cannot be appended does not commit (§12, §12e).

— SPEC §7

StatusProof phased:aGym
Tested, not provedA0 : 2 (baseline 0 : 2, not degraded)3 entries, 3 must-pass

How it is proved

No obligation discharges it: nothing about it is proved.

What it rests on

If any of these is false, the proof no longer describes the real machine.

IdAssumptionKindAlso relied on by
P1Backend Outcome is honest: Succeeded means applied; Unknown means the backend cannot sayPlatformI3, I12
P4Journal fsync is durable and the preallocation is writablePlatformI6, I7, I12, I15, I18, I24

How it is tested

EntryHarnessWhat it doesExpectsLatest verdict
floor-moves-via-boot-onlyfakeA security update that also needs a reboot takes the boot-only path: published to boot once, the machine restarts, the boot is confirmed and the change commits. The floor moves to it, as on the live path.security_floor: candidate; txn: Committed ApplyChangefake: PASS
floor-moves-via-watchdogfakeThe daemon is killed once the security update is Promoted and stays down; the watchdog completes the commit. The floor moves to the fixing generation: the floor record is part of the commit, whoever writes Committed.security_floor: candidate; txn: Committed ApplyChangefake: PASS
revert-to-older-sets-no-floorfakegym-newlib 1.0 is added, then a release makes it 2.0, which carries knownVulnerabilities. Undoing back to the 1.0 generation is a Revert to an older generation that merely lacks the newer package: it sets no security floor (§12e).security_floor: none; txn: Committed Revertfake: PASS

Known limits

BypassRouteSeverityStatusCloses in
X-1Root edits the store, /boot, the binaries, the journal or the posture stateAcceptedAcceptedE
X-2A nixos-rebuild outside PlanarianAcceptedAcceptedC
X-4Physical accessAcceptedAcceptedE
X-6The supply chain: nixpkgs content, cache signatures, input-addressed store pathsAcceptedAccepted—
X-7Backends report success falsely; systemd or the kernel misbehave (P1, P6, P8)AcceptedAcceptedD, E

History

SpecChange
v4.6I25: post-commit bookkeeping on every commit path
v4.6rule 4’s preserve list to I25 [D5]

See also

§12 · §12e