# Security policy — mgf-fed

## Reporting a vulnerability

Report suspected vulnerabilities privately to **bassam@magogi.org** (or open a confidential
issue on the Codeberg repo). Please include reproduction steps and impact. We aim to acknowledge
within a few days and to ship a fix as a new release (never a content-swap of a published version
— REL-05 / PKG-07).

## Security model (what mgf-fed touches)

`mgf-fed` is a thin, zero-runtime-dependency **orchestrator CLI**. Its security-relevant surface:

- **Codeberg publish token** — read from `$MGF_CODEBERG_TOKEN` / `$CODEBERG_TOKEN` (REL-04 / PKG-03
  discipline). It is **never** written to source, config, or logs, and is passed only as a
  subprocess argument to `uv publish` — never interpolated into printed output (SC-01 / SC-11).
- **Subprocess invocation** — every external call (`uv`, `git`, `tea`, `woodpecker-cli`, `ruff`) uses
  an **argv list with `shell=False`** (SC-02); no shell string interpolation.
- **Network** — outbound only, over HTTPS to `codeberg.org`, TLS-verified, with finite timeouts
  (SC-06 / SC-07). mgf-fed runs no server and accepts no inbound connections.
- **Filesystem** — paths derive from the trusted federation roster + the canonical template policy,
  not from untrusted input (SC-15).
- **No cryptography, no authentication surface, no secret storage** beyond reading the env token.

See the per-MUST security verdicts in [`docs/inprogress/MGF_STANDARDS_CONFORMANCE.md`](docs/inprogress/MGF_STANDARDS_CONFORMANCE.md) (SC-* rows).
