Skip to content

Security

Wardrik runs under one operating-system user. Processes running as that user can read its state and use its credentials. Use a trusted host and a dedicated service account.

Port Interface Access
The HTTP API 4747 loopback, or http.ip requests with a token, dashboard sessions, and the public paths
Erlang distribution random all anyone with the cookie
epmd 4369 all anyone; returns the node name and port
  • The HTTP API is plain HTTP. Over a network, put a TLS-terminating proxy in front.
  • Block 4369 and the distribution port at the firewall.

wardrik stop and wardrik pid connect to the node with the cookie in ~/.local/share/wardrik/cookie. Anyone with the cookie and network access to the port can run arbitrary code on the node. RELEASE_COOKIE overrides the cookie, and WARDRIK_COOKIE_FILE sets the file path.

  • ${NAME} in config.yaml resolves from the environment, the env file, or the vault, so the file contains no secrets.
  • The vault encrypts secrets and accounts with AES-256-GCM. Back up its key separately from the store. See the vault.
  • ~/.config/wardrik/env contains keys. wardrik doctor fails if other users can read it.
  • ~/.local/share/wardrik/cli_token is the admin token, with full access.
  • An MCP server run as a command runs as the daemon's user, with its environment. Run only trusted servers.

A policy checks each call. After a turn reads untrusted content, its gated tools need approval. See Policy and Untrusted content.

MCP servers, webhooks, and OAuth apps added at runtime must use public HTTPS URLs. For local development, allow_private_urls: true permits private addresses.

Directory Contents Readable by
~/.config/wardrik config.yaml, agents/, policies/, env as you set it; env is mode 600
~/.local/share/wardrik the store, the cookie, vault_key, cli_token the daemon's user
~/.local/state/wardrik logs the daemon's user

WARDRIK_CONFIG_DIR, WARDRIK_DATA_HOME and WARDRIK_STATE_DIR override them.

Open the repository’s Security tab and choose Report a vulnerability to submit a private report.