8000 fix(minimald): bound the decision audit log and fail closed on an unrecordable allow · Issue #1911 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content
8000

fix(minimald): bound the decision audit log and fail closed on an unrecordable allow #1911

Closed

Description

@norrietaylor

The dynamic-ingress decision audit log (crates/minimald/src/audit.rs, decisions.log under the state directory's audit/) has two durability gaps. Both were left out of the task that added it (#1891) and are tracked here together.

  1. No rotation or cap. The log is append-only and grows without bound. Add size-based rotation or a cap that keeps a bounded tail. The daemon's state dump, which reads the log's tail, must keep working across a rotation.
  2. A decision whose audit append fails is still applied. When append refuses (for example a planted symlink in place of audit/ or decisions.log) or fails (for example a full disk), the warn line is logged and the decision goes ahead unrecorded. NET-046 requires every decision to be recorded. Fail closed on an unrecordable allow: refuse the exposure and log why. An unrecordable deny still applies, because refusing it would open the port.

Tests: an allow whose append is refused is not published; a deny whose append is refused still refuses; rotation keeps the newest records and the state dump's tail still reads them.

Spec: NET-046 (spec 18).

Activity

  1. norrietaylor commented on Oct 17, 2026

    @norrietaylor
    MemberAuthor

    Closing: done by #2027 on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0