# bun audit (/docs/pm/cli/audit)

<!-- agent-signals: reading_time_min: 1 · est_tokens: 423 · updated: 2026-07-28 -->
Related: [bun publish](/docs/pm/cli/publish.md), [bun outdated](/docs/pm/cli/outdated.md), [bun why](/docs/pm/cli/why.md), [bun info](/docs/pm/cli/info.md)

Run the command in a project with a `bun.lock` file:

```bash terminal icon="terminal"
bun audit
```

Bun sends the list of installed packages and versions to npm, and prints a report of any vulnerabilities found. Packages installed from registries other than the default registry are skipped.

If no vulnerabilities are found, the command prints:

```
No vulnerabilities found
```

When vulnerabilities are detected, Bun lists each affected package with the severity, a short description, and a link to the advisory. At the end of the report it prints a summary and hints for updating:

```
3 vulnerabilities (1 high, 2 moderate)
To update all dependencies to the latest compatible versions:
  bun update
To update all dependencies to the latest versions (including breaking changes):
  bun update --latest
```

### Filtering options [#filtering-options]

**`--audit-level=<low|moderate|high|critical>`** - Only show vulnerabilities at this severity level or higher:

```bash terminal icon="terminal"
bun audit --audit-level=high
```

**`--prod`** - Audit only production dependencies (excludes devDependencies):

```bash terminal icon="terminal"
bun audit --prod
```

**`--ignore <CVE>`** - Ignore specific CVEs (repeat the flag to ignore several):

```bash terminal icon="terminal"
bun audit --ignore CVE-2022-25883 --ignore CVE-2023-26136
```

### `--json` [#--json]

Use the `--json` flag to print the raw JSON response from the registry instead of the formatted report:

```bash terminal icon="terminal"
bun audit --json
```

### Exit code [#exit-code]

`bun audit` exits with code `0` if no vulnerabilities are found and `1` if the report lists any, including when `--json` is passed.
