SECURITY.md
Rama main · réplica de lectura del repositorio original.
# Security policy
vidtheque is a self-hosted server that people are invited to point their agents
at, and it ships a public demo mode. If you have found a way to read, write or
spend something you should not be able to, we want to hear about it before
anyone else does.
## Reporting a vulnerability
**Use GitHub's private vulnerability reporting**, on this repository:
> **Security** tab → **Report a vulnerability**
> ([direct link](https://github.com/T0mSIlver/vidtheque/security/advisories/new))
It opens a private advisory that only the maintainer can see, it keeps the whole
exchange — and any fix — in one place, and it needs no key exchange and no email
address from either side. Please use it rather than a public issue, a pull
request or a discussion: those are visible to everyone the moment you press the
button, including to whoever else is scanning.
Useful in a report, in rough order of usefulness:
- what an attacker gets — the impact, in one sentence;
- the version or commit, and whether the instance was in public read-only mode
(`VIDTHEQUE_PUBLIC_READONLY=1`, `VIDTHEQUE_AUTH=none`) or private;
- the smallest reproduction you have, ideally a `curl`;
- anything you already know about the fix.
Please do not run denial-of-service tests, spend someone else's GPU or API
budget, or fetch other people's data from a live instance to prove a point. A
description of the path is enough.
## What to expect
This is a one-person project. You will get an acknowledgement, an honest
assessment of whether it is a bug and how bad it is, and credit in the advisory
unless you ask not to be named. Fixes land on `main` and ship in the next
tagged release; there are no backports, so the latest release — and `main`
ahead of it — is the only supported version.
If you would rather not use GitHub, say so in a public issue **without any
detail** and a private channel will be arranged. (A dedicated security address
may be published here later; until then the advisory form is the channel.)
## Scope
In scope: this repository, and the deployment guidance it ships —
`mcp/`, `worker/`, `deploy/`, `scripts/`, and `docs/deploy-public.md`.
[`docs/security.md`](docs/security.md) maps the rest of the security material:
what is public here on purpose, and what is held in a private repo because an
audit names the things that are not fixed yet.
Particularly interesting: anything that crosses the public read-only boundary
(a write tool or write route reachable at `VIDTHEQUE_PUBLIC_READONLY=1`),
anything that escapes `VIDTHEQUE_DATA_DIR` through `/frames/*` or `/static/*`,
anything that defeats the per-IP rate limiting, and anything that lets an
anonymous caller drive the GPU worker.
Out of scope: findings that require an operator to have already ignored
`docs/deploy-public.md` — a worker exposed to the internet (it answers an
unauthenticated OpenAI-compatible API by design, and the runbook says to keep it
off-box), a dashboard published without a password, or trusting
`CF-Connecting-IP` on an origin that is reachable without going through the
tunnel. Those are documented configurations, not vulnerabilities; if the
documentation is what is wrong, that is a good report and it belongs in a public
issue.
Third-party findings — yt-dlp, whisperX, SQLite, Starlette — belong upstream.
Tell us anyway if this project's use of them is what makes them exploitable.