Skip to content

Reject incompatible storage schemas before actors write state #1671

Closed

Description

@hmzakhalid

Audit reference: I27

What can go wrong

Actors could interpret unversioned or incompatible bytes as current state and begin writing before anyone checked the on-disk schema.

When it happens

This is an upgrade and rollback hazard at process startup, before actor construction and replay.

What changed

A schema preflight now runs first, stamps only genuinely fresh stores, and rejects missing, older, or newer protocol schemas.

Why the change works

No actor can mutate state until the binary has proved it understands that state, preserving a possible rollback or explicit migration path.

Checks

Fresh, current, missing, older, newer, and actor-startup tests pass.

Activity

  1. added
    bugSomething isn't working
    ciphernodeRelated to the ciphernode package
    securityRelevant to security
    on Jul 11, 2026
  2. hmzakhalid commented on Jul 13, 2026

    @hmzakhalid
    CollaboratorAuthor

    Fixed in fae83d0fa6

  3. hmzakhalid commented on Jul 14, 2026

    @hmzakhalid
    CollaboratorAuthor

    Re-verified: direct DAppNode upgrade still lacked a schema-marker bridge, and the refactor additionally moved state from /data/.enclave to /data/.interfold. Fixed in 4cca970c0: the package pins the published v0.2.3 bridge release, atomically migrates the legacy namespace, preserves existing encrypted identities, lets v0.2.3 stamp schema v1, and refuses ambiguous dual-root state. The required upgrade hop is documented and covered by DAppNode hardening tests.

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

    bugSomething isn't workingciphernodeRelated to the ciphernode packagesecurityRelevant to security

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions