Email security@peiralabs.com. You'll get an acknowledgment within a week (this is a solo, best-effort project — see the maintenance policy). Please don't open public issues for undisclosed vulnerabilities.
Only the latest release is supported with fixes.
- Proxmox API tokens, media-service API keys, and other credentials are
stored only in the system Secret Service (GNOME Keyring / KWallet)
via
flutter_secure_storage. Nothing is written to plain files, and nothing leaves your machine except the API calls you configured. - There is no telemetry. The only outbound call not aimed at your own services is the explicit, operator-triggered update check against the GitHub Releases API (public builds).
- Self-signed TLS trust applies to the Proxmox host only, behind a visible settings toggle.
The terminal's quick-connect targets (Settings › Terminal) are passed
directly to ssh's argv with no validation. A hostile "target" string
like -oProxyCommand=... would execute a command when you open that
terminal entry.
Today this is operator-controlled input — you typed it into your own
settings, so it is equivalent to editing your own ~/.ssh/config. It
becomes a real attack path only if settings import from untrusted sources
ever ships (see KNOWN_ISSUES: planned export/import); that feature will not
land without hardening this path. Disclosed here so nobody has to discover
it.
- The app talks to whatever endpoints you configure with the credentials
you gave it — a compromised endpoint sees those credentials by design.
Scope your Proxmox token (
PVEAuditorunless you want management actions). - Service tabs call each service's API with the key you saved for it; the key reaches only that service. "Open in browser" hands the service's own URL to your system browser.
- The AppImage runs unsandboxed, like any AppImage. Verify downloads:
sha256sum -c SHA256SUMS && gpg --verify SHA256SUMS.asc SHA256SUMS. The release signing key is docs/release-signing-key.asc, fingerprint659A D4F9 BD11 8838 ECBA D6DB 587E C679 3F57 6180. A release signed by any other key is not ours.