Please report security issues privately, not as a public GitHub issue.
Use GitHub Security Advisories: go to this repository's Security tab and click "Report a vulnerability." That opens a private draft advisory visible only to you and the maintainer, so we can discuss and fix the issue before any public disclosure.
Please include:
- what you found and why it's a security issue (not just a bug),
- steps to reproduce it,
- the version/commit you tested against,
- any suggested fix, if you have one.
Titration is maintained by one person, so please allow up to a week for an initial response.
Titration runs entirely on your own machine, talking to your own database and whichever judge providers you configure. A few things worth knowing when thinking about its attack surface:
- The local judge picker binds to
127.0.0.1only — it is never reachable from another machine on your network. - API keys and connection strings live in your own
.envfile (gitignored; never committed) and are read from the environment. Titration does not transmit them anywhere except to the provider each key is for. - Error text returned through an MCP tool call is passed through a redaction
pass (
lib/tool-error-redaction-core.ts) that strips secrets and local file paths before the text reaches a caller or a transcript. - Titration never clones or executes your project's code. It receives declared outputs over MCP and grades those; it does not pull or run your repository.
If you're unsure whether something you found is in scope, report it anyway — we would rather triage a false positive than miss a real issue.