# truefoundry VDP

> truefoundry's vulnerability disclosure program. Report security issues in the in-scope assets below, through the web form at https://vdp.truefoundry.com/ or the researcher API described here.

- Program page: https://vdp.truefoundry.com/
- Status: accepting new reports
- First reply within 5 days
- API reference (OpenAPI): https://vdp.truefoundry.com/api/researcher/v1/openapi.json

## Scope

In scope:
- `https://github.com/truefoundry/trueforge` (Repository, id `5fff3715-665b-4612-b788-3009579dada3`)
- `truefoundry.com` (Domain, id `52d77115-d50b-4388-ba2c-23ef21059ddd`)
- `signup.truefoundry.com` (Domain, id `57a48aa3-1235-4c75-9cbe-e3ca3be19920`)
- `*.gateway.truefoundry.ai` (Wildcard domain, id `29f2424d-6081-45a5-a142-9fda1c4a6629`)
- `gateway.truefoundry.ai` (Domain, id `42d83684-6c1f-4e71-b4bd-26b8cf0de46e`)
- `*.truefoundry.cloud` (Wildcard domain, id `f3b0a4a5-2412-46f2-8e5e-5ba68e2b1583`)

Out of scope:
- None

## Rewards

Rewards are at the security team's discretion.

## Policy

### Responsible research

Our program covers the TrueForge source repository and the TrueFoundry website, signup service, AI Gateway endpoints, and cloud services identified in this page’s scope. Test web applications and APIs at low request rates using accounts, tenants, API keys, and model or tool integrations you control. Assess authentication, authorization, tenant isolation, credential handling, and gateway controls without affecting other users. For TrueForge, prefer a local environment you control when examining session handling, approvals, sandbox boundaries, or file access, and report source-code findings privately.

### Reporting

Submit vulnerability reports using the form on this program page. A useful report includes:

- The affected asset, endpoint, or source location, including relevant versions and deployment modes.
- Clear reproduction steps, prerequisites, and any account roles or configuration needed.
- The security impact and realistic attack scenario.
- Supporting evidence, such as sanitized requests, responses, logs, or screenshots, and suggested mitigations where available.

We aim to provide a first response within 5 days. Our contact address, security@truefoundry.com, is for questions about the program.

### Prohibited testing

- Denial-of-service attacks, resource exhaustion, or automated scanning that degrades service.
- Social engineering, phishing, or attempts to deceive employees, users, or service providers.
- Physical attacks against people, facilities, or infrastructure.
- Spam, unsolicited messages, or abusive account creation.
- Accessing, altering, deleting, or retaining other people’s data beyond the minimum necessary to demonstrate an issue, including prompts, conversations, audit records, and credentials.
- Using gateway access, MCP tools, or sandbox execution to affect other users, external systems, or resources you do not control.

### Safe harbor

We authorize good-faith research conducted in accordance with this policy and will not pursue or support legal action against researchers for that research. If a third party takes legal action concerning compliant research, we will make our authorization known.

### Disclosure

Keep vulnerability details private until the issue is fixed, including by avoiding public repository issues or pull requests that expose the vulnerability. We aim to fix valid issues within 90 days and will coordinate any publication with you, providing credit if you wish to receive it.

## Reporting with an agent

1. Read the program: `GET https://vdp.truefoundry.com/api/researcher/v1/program`. Use an in-scope asset's `id` as `scopeAssetId`.
2. Sign in, once. Either:
   - Email code: `POST https://vdp.truefoundry.com/api/researcher/v1/auth/email-code` with `{"email": "..."}`. A 6-digit code is emailed; the subject starts with it. Then `POST https://vdp.truefoundry.com/api/researcher/v1/auth/email-code/verify` with `{"email", "code", "name"}` returns `{"data": {"token"}}`. `name` is shown to the security team.
   - Approval: `POST https://vdp.truefoundry.com/api/researcher/v1/auth/device` returns `verificationUrlComplete`. Ask the researcher you work for to open it and approve, then poll `POST https://vdp.truefoundry.com/api/researcher/v1/auth/device/token` with `{"deviceCode"}` every `interval` seconds.
   Send the token as `Authorization: Bearer <token>`. It works only on this program's domain.
3. Submit: `POST https://vdp.truefoundry.com/api/researcher/v1/reports` with an `Idempotency-Key` header and `{"scopeAssetId", "title", "description", "reproductionSteps", "impact", "reporterSeverity"}`. `reporterSeverity` is optional: info, low, medium, high or critical. Fields are Markdown. A report cannot be edited after it is submitted.
4. Attach proof: `POST https://vdp.truefoundry.com/api/researcher/v1/reports/{id}/files` with a multipart `file` field.
5. Follow up: `GET https://vdp.truefoundry.com/api/researcher/v1/reports` lists your reports (`status` is open, resolved or closed). `GET https://vdp.truefoundry.com/api/researcher/v1/reports/{id}` shows a report and its conversation; when `responseOwner` is REPORTER, the team is waiting for you. Reply with `POST https://vdp.truefoundry.com/api/researcher/v1/reports/{id}/replies` and `{"body"}`.

Errors use `{"error": {"code", "message"}}`. Requests are rate limited per researcher.

Keep reports confidential: do not publish details until the security team agrees.
