The revocation list
signersholds revoked signer ids. It covers every plugin signed by that key.archivesholds lowercase sha256 hex digests of.adosplugfiles. It covers one exact archive.versionsholds<plugin_id>@<version>entries, for examplecom.example.my-plugin@1.0.3. It covers one release of one plugin, whatever archive it came from. The key is optional.
["example-2025-X"]) is also accepted, and so is the registry’s own shape (signer_keys, plugin_versions, generated_at). An entry in versions that is not <plugin_id>@<version> makes the file unreadable. A file that exists but cannot be read or parsed is treated as fail-closed: signed plugins are refused install and enable with revocation_list_unreadable until it reads, and the plugin host keeps enforcing the last good list.
Where entries come from
- You. Edit the file directly or distribute it through your own configuration management.
- The registry. About a minute after start and then once a day, the agent fetches the registry’s
/v1/revoked.json(see Catalog and registry) and merges it into the local list:signer_keysintosigners,plugin_versionsintoversions. The merge is add-only: it never removes an entry you or an earlier fetch added. A failed fetch is logged and retried at the next cycle.
What happens when the list changes
The plugin host checks the file every 5 seconds and at start. No restart is needed. Within about 5 seconds of a change:
Your options for a disabled plugin:
Issuing a revocation
When a key is compromised or a publisher leaves your trust set:- Add the signer id, the archive digest or the
<plugin_id>@<version>release to/etc/ados/plugin-revocations.jsonon every agent. - Generate a fresh key, enrol its public key, and re-sign your current releases (see Signing keys).
- Tell operators which plugins are affected and which releases replace them.
/v1/revoked.json.
Operator checklist
- Read the reason. A safety reason means ground the affected vehicles first.
- Run
ados plugin liston every node to find affected plugins. - Install the replacement release.
ados plugin remove <id>for the revoked install.- Confirm the refusal and removal in
journalctl -u ados-plugin-host.
Reporting a security issue
This page is the one home for security reporting across the agent, Mission Control and extensions. If you believe a plugin or an ADOS component is malicious, broken in a way that affects flight safety, or leaking data, report it privately: use the contact channel on altnautica.com and mark the message as a security report. Do not open a public issue. Include:- The plugin id and version, or the component and version.
- The signer id (from
ados plugin info <id>or the archive’sSIGNATUREfile). - What happens, with reproduction steps where possible.
- The operator-facing impact (data loss, vehicle behavior, information disclosure).
- Whether you have already disclosed publicly, with a link if so.
- Logs, captures or analysis output that support the report.
- How you would like to be credited, if at all.
Next steps
Signing keys
Generate and enrol a replacement key.
Legal and licensing
Licences and distribution channels.