SECURITY.md
Rama main · réplica de lectura del repositorio original.
# Security Policy
## Reporting a vulnerability
**Please do not open a public issue for security vulnerabilities.**
Use GitHub's private vulnerability reporting instead:
**Security → Report a vulnerability** on this repository. That channel is private between you
and the maintainers until a fix is published.
If private reporting is unavailable to you, email the maintainers at **lively@lvly.io** rather than
filing a public issue.
### What to include
- What the vulnerability allows an attacker to do, in plain language
- Steps to reproduce, or a proof of concept
- Affected version or commit
- Any suggested fix, if you have one
### What to expect
- We aim to acknowledge a report within a few business days.
- We will tell you whether we consider it a vulnerability and, if so, our intended fix and
timeline.
- We will credit you in the advisory unless you prefer otherwise.
We are a small team. We would rather receive a report that turns out to be a non-issue than miss
a real one — please err on the side of reporting.
## Supported versions
This project is pre-1.0 and moves quickly. Security fixes land on `main` and in the next release;
we do not currently backport to older tags.
## Scope
This repository is a self-hosted gateway. Its security model assumes:
- **Per-user authentication and scopes.** Every tool call resolves a user before doing anything;
see `src/context.ts`. A path that reaches data without that resolution is a vulnerability.
- **The database is read-only and firewalled.** `db_query` allows a single `SELECT`, blocks
dangerous functions, and denies sensitive tables (`src/db/firewall.ts`). A bypass — including
one via renaming, expressions, or a second statement — is a vulnerability.
- **Secrets never enter content.** Tokens and keys are redacted from logs, proxied responses, and
stored records (`src/org/ingest/redact.ts`). A path that persists or echoes a plaintext
credential is a vulnerability.
- **Channel guards are fail-closed.** Private channels and DMs are denied by default until a
human enables them (`src/org/channels/channel-guard.ts`). A path that reads or writes a
conversation the operator has not allowed is a vulnerability.
Reports about the Enterprise directory (`src/ee/`) are equally welcome — the source is public
even though production use requires a subscription.
### Out of scope
- Findings that require the operator to have already configured the gateway insecurely (for
example, granting a read-write database role, or issuing a token with scopes beyond intent).
- Denial of service through resource exhaustion on a self-hosted instance you control.
- Missing hardening headers on a deployment you operate, where the deployment is under your
control to fix.