---
title: Security and data
description: Consent-gated scanning, throwaway sandboxes, and what grayhat keeps about your code.
---

An agent that writes working exploits is only safe when it's pointed at code its owner asked it to attack. Everything below follows from that.

## Consent

grayhat scans a repository only after you install the GitHub App on it. Removing the repository from the installation, or uninstalling the app, stops all scanning immediately.

## Sandboxes

Exploits and fixes run inside an isolated virtual machine with restricted outbound network access:

- Your code is cloned with a token scoped to that one repository, which expires within minutes.
- The machine never holds model keys, the GitHub App key, or database credentials. Those stay with the agent that drives the sandbox from outside.
- The machine is destroyed when the run ends. Nothing ever runs against your production systems.

## What we keep

| Kept | Not kept |
| --- | --- |
| The security index: routes, guards, call edges, dependency versions | A full copy of your source |
| Short code excerpts cited in findings | Sandbox disks after a run |
| Findings, reproductions and run history | Anything used to train a model |

The full policy is on the [privacy page](/privacy).
