87 lines
2.0 KiB
Markdown
87 lines
2.0 KiB
Markdown
# Security Policy
|
|
|
|
LLM Gateway sits between clients and AI providers, so security hygiene matters.
|
|
|
|
## Supported Scope
|
|
|
|
This public snapshot supports responsible reports for:
|
|
|
|
- gateway API behavior
|
|
- subscription bridge behavior
|
|
- local credential exposure risks
|
|
- request validation issues
|
|
- output validation issues
|
|
- unsafe defaults
|
|
- logging of sensitive data
|
|
- dependency risk
|
|
- documentation that could cause unsafe deployments
|
|
|
|
Private deployments, private data, and private operator environments are out of scope for this
|
|
public repository unless a maintainer explicitly asks for that review.
|
|
|
|
## Reporting
|
|
|
|
Please open a private security advisory through GitHub if available. If that is not available,
|
|
open a minimal issue that does not include exploit details or sensitive data, and ask for a
|
|
private reporting channel.
|
|
|
|
Do not post:
|
|
|
|
- real credentials
|
|
- OAuth files
|
|
- cookies
|
|
- production hostnames
|
|
- database dumps
|
|
- logs containing account data
|
|
- screenshots with account state
|
|
|
|
## Handling Expectations
|
|
|
|
For valid reports, maintainers aim to:
|
|
|
|
1. acknowledge the report
|
|
2. reproduce or classify the risk
|
|
3. prepare a fix or mitigation
|
|
4. document the affected area
|
|
5. publish guidance when needed
|
|
|
|
## Secret Hygiene
|
|
|
|
Before contributing, run:
|
|
|
|
```bash
|
|
gitleaks dir . --redact
|
|
```
|
|
|
|
Also manually check for:
|
|
|
|
- private hostnames
|
|
- private IP addresses
|
|
- local filesystem paths
|
|
- database connection strings with credentials
|
|
- long placeholder values that look like credentials
|
|
- personal account names
|
|
- generated logs
|
|
- training data
|
|
|
|
## Subscription Bridge Safety
|
|
|
|
Subscription bridges should:
|
|
|
|
- bind to localhost by default
|
|
- avoid exposing OAuth material
|
|
- avoid logging prompts that may contain sensitive data
|
|
- return clear errors when a CLI is missing or unauthenticated
|
|
- support a health endpoint
|
|
- avoid background execution unless explicitly enabled
|
|
|
|
## Public Examples
|
|
|
|
Examples should use placeholders such as:
|
|
|
|
```text
|
|
Authorization: Bearer <key>
|
|
```
|
|
|
|
Do not include realistic credential-like strings in examples.
|