Spectre is a runtime boundary, not an authorization system. Applications must still authenticate users, authorize business operations, protect credentials, and validate data inside their action and provider adapters.
Supported versions
Security fixes are released for the latest supported 0.x minor version.
Users should upgrade to the newest patch before reporting a problem already
addressed in the changelog.
Reporting a vulnerability
Please report vulnerabilities privately through GitHub Security Advisories for
elchemista/spectre. Include:
- the affected Spectre version and Elixir/OTP versions;
- a minimal reproduction;
- the expected and observed security boundary;
- whether untrusted input, a model/provider reply, or persisted state is required to trigger it;
- any known mitigation.
Do not include real prompts, user conversations, credentials, or production state in a report.
Boundary model
Spectre enforces deterministic lifecycle and policy transitions, isolates provider callbacks, validates persisted state, and keeps side-effect execution explicit. It does not claim that an LLM is immune to prompt injection. Dynamic content is marked as data at the prompt-plan boundary, but downstream model behavior remains probabilistic.
See Architecture, Provider Resilience, and Production Operations for the complete trust model.