Skip to content

plugins: define revocation and publisher compromise handling #485

Description

@puremachinery

Problem

Plugin signature verification establishes provenance, but provenance is not revocation. If a publisher key is compromised or a signed plugin later becomes known-malicious, Carapace needs a clear startup/update behavior and operator recovery path.

Goal

Define and implement a practical revocation model for signed plugins and publisher keys.

Acceptance criteria

  • Document the current trust model as Ed25519 trusted publishers unless a separate transparency-log workflow is explicitly implemented later.
  • Document that transparency-log monitoring is out of scope for this issue.
  • Add a local revocation list format that can revoke publisher keys and plugin artifact digests.
  • On startup and plugin update, revoked plugins are disabled before execution.
  • Operators get a clear warning that names the plugin id, revocation reason, and recovery action without printing secrets or unsafe paths.
  • Define publisher key compromise handling: key rotation, grace behavior, and how already-installed plugins signed by the compromised key are treated.
  • Add tests for revoked digest, revoked publisher key, missing revocation list, malformed revocation list, and clean plugin startup.
  • Update plugin development/security docs with the limitation that signatures prove provenance but do not prove benign behavior.

Activity

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

    pluginWASM plugin runtime, CLI, and distributionsecuritySecurity controls, vulnerabilities, or hardening

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions