Skip to content
Slipstream agent · Code

Security Audit

A dependency vulnerability audit agent for Claude Code, Codex and Cursor

Security Audit finds known vulnerabilities in a public repository's locked dependencies and judges, citing the code, whether the project uses the vulnerable part of each. A run costs 2,500 credits, charged only when the run succeeds.

Not offered in ContextStream yet. It needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet. Version 0.1.0 · Updated

What does Security Audit do?

Scans a public GitHub repo's lockfiles with osv-scanner, judges from the code whether each vulnerable package is actually used, and proposes an upgrade path for each.

What it declines

A task like one of these is declined with a reason, and a declined run is free:

  • Upgrading or changing anything: it proposes upgrade paths (Dependency Upgrader applies upgrades).
  • Finding new vulnerabilities in the project's own code, or penetration testing.
  • Private repositories, or anything that needs credentials.
  • Fixing failing tests (CI Fixer does that).

What does a real run of Security Audit look like?

The input, the result (shortened where it is long), how long it took, what it cost and where it ran. Live runs used public or demo material only; a run marked as from the eval suite is not a live run.

This agent needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet, so there is no live run to show. The example comes from its eval suite.

From its eval suite, not a live run

Four advisories in a lockfile, one reachable (eval case)

Version
0.1.0
Outcome
succeeded
Ran
2026-10-27 17:17 UTC
Took
Not timed (fakes)
Cost
No charge (offline)

The agent's offline eval suite: its real program, with osv-scanner's output, the model and the repository as fixtures, with no network. Not a live run.

What it ran on

  • evals/audit/cases.jsonl in the Slipstream repository
Input
{
  "repo_url": "https://github.com/eval/webapp",
  "focus": "the template rendering"
}

Result

4 known vulnerabilities in 3 packages: 1 reachable, 1 uncertain, 2 not reachable. Start with GHSA-35jh-r3h4-6jhm in lodash (high): Upgrade lodash from 4.17.15 to 4.17.21 or later.

Findings

AdvisoryPackageSeverityUsed by the code?WhyUpgrade
GHSA-xvch-5gv4-984hminimist 1.2.5criticaluncertainminimist comes in through mkdirp and json5; whether either passes it untrusted arguments is not visible from the project's code.Upgrade json5, mkdirp to a release that depends on minimist 1.2.6 or later, or override minimist to 1.2.6.
GHSA-35jh-r3h4-6jhmlodash 4.17.15highreachablerenderPage compiles the template a site owner saves with _.template, and the server renders it on every request.Upgrade lodash from 4.17.15 to 4.17.21 or later.
GHSA-9c47-m6qq-7p4hjson5 1.0.1highnot reachablejson5 is a dev dependency used only by the build script, on the repository's own config file.Upgrade the dev dependency json5 from 1.0.1 to 1.0.2 or later.
GHSA-29mw-wpgm-hmr9lodash 4.17.15mediumnot reachableThe project calls only _.template and _.get; it never calls toNumber, trim or trimEnd.Upgrade lodash from 4.17.15 to 4.17.21 or later.

audit.md

# Security audit of https://github.com/eval/webapp

osv-scanner 2.7.0 over 1 lockfile(s).

| Vulnerability | Package | Severity | Verdict | Upgrade |
| --- | --- | --- | --- | --- |
| GHSA-xvch-5gv4-984h | [email protected] (transitive) | critical | uncertain | Upgrade json5, mkdirp to a release that depends on minimist 1.2.6 or later, or override minimist to 1.2.6. |
| GHSA-35jh-r3h4-6jhm | [email protected] (direct) | high | reachable | Upgrade lodash from 4.17.15 to 4.17.21 or later. |
| GHSA-9c47-m6qq-7p4h | [email protected] (dev) | high | not_reachable | Upgrade the dev dependency json5 from 1.0.1 to 1.0.2 or later. |
| GHSA-29mw-wpgm-hmr9 | [email protected] (direct) | medium | not_reachable | Upgrade lodash from 4.17.15 to 4.17.21 or later. |

## GHSA-xvch-5gv4-984h: [email protected]

Prototype Pollution in minimist

**uncertain**: minimist comes in through mkdirp and json5; whether either passes it untrusted arguments is not visible from the project's code.

## GHSA-35jh-r3h4-6jhm: [email protected]

Command Injection in lodash

**reachable**: renderPage compiles the template a site owner saves with _.template, and the server renders it on every request.
- `src/render.js:5`: `const compiled = _.template(templateSource);`

## GHSA-9c47-m6qq-7p4h: [email protected]

Prototype Pollution in JSON5 via Parse Method

**not_reachable**: json5 is a dev dependency used only by the build script, on the repository's own config file.
- `scripts/build-config.js:4`: `const config = JSON5.parse(readFileSync('config.json5', 'utf8'));`

## GHSA-29mw-wpgm-hmr9: [email protected]

Regular Expression Denial of Service (ReDoS) in lodash

**not_reachable**: The project calls only _.template and _.get; it never calls toNumber, trim or trimEnd.
- `src/render.js:1`: `import _ from 'lodash';`
Checks: 3 of 3 passed
  • clone: Cloned https://github.com/eval/webapp.
  • scan: osv-scanner 2.7.0 found 4 known vulnerabilities.
  • workspace_context: 0 context items from ContextStream for this job, about 0 tokens.
Eval case
evals/audit/cases.jsonl, webapp-mixed
Depot run
0zb9r381xr

What does Security Audit cost?

Security Audit costs 2,500 ContextStream credits a run, charged only when the run succeeds; a declined, failed, cancelled or timed-out run costs nothing. Credits come with every plan: Starter is free with 10,000 a month (4 runs of Security Audit, if spent on nothing else), and Pro is $19 a month with 25,000.

Which tools does Security Audit work with?

Claude Code, Codex, Cursor and other MCP clients, once ContextStream offers it: through the slipstream tool of ContextStream's MCP, ss run audit in a terminal, or the web app. It needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet.

  • Claude Code, Codex, Cursor and other MCP clients: connect ContextStream's MCP once (setup for each editor), then ask your agent to hand the job to Security Audit.
  • A terminal or an agent's shell: ss run audit, installed with ContextStream's command line.
  • The web app: the workspace's specialist library, where each run shows its price before it starts.

What access does Security Audit need?

Security Audit gets a short-lived token for one workspace, limited to 2 scopes: Models via ContextStream and Reads context. It works in one project, and only for that run.

Model agent with a sandbox. A program on ContextStream's model proxy that also drives its own sandbox. The sandbox holds no credentials. Network: github.com, codeload.github.com, objects.githubusercontent.com, release-assets.githubusercontent.com, api.osv.dev, api.deps.dev. It is stopped after 15 min.

ScopeWhat it lets a run do
model.invokeCall models through ContextStream’s model proxy, under the run’s credit cap.
context.readRead the run’s context pack from the workspace.

How do I turn Security Audit on?

You cannot turn Security Audit on yet: it needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet. It is built and tested, and its page shows how it will be called.

How do I call Security Audit from Claude Code or Codex?

Once it is offered: ss run audit in a terminal, or slipstream(action="run", agent="audit", input={...}) over MCP, with the input below.

Connect ContextStream's MCP (it also writes each editor's connection):

curl -fsSL https://contextstream.io/scripts/mcp.sh | bash

Scans every lockfile, judges each vulnerability's reachability and proposes upgrades. Over MCP:

slipstream(action="run", agent="audit", input={"repo_url":"https://github.com/acme/api"}, accepted_price_credits=2500)

In a terminal (curl -fsSL https://contextstream.io/cs/install.sh | sh installs ss):

ss run audit repo_url=https://github.com/acme/api

Over MCP, a call without accepted_price_credits returns the quote first; ss asks on a terminal, and scripts pass --yes.

Input

FieldTypeWhat it is
repo_urlstring, required
refstring
subdirstring
focusstringWhat to look at hardest, for example "the HTTP server" or a package name.
Code

CI Fixer

failing test fix agent

CI Fixer reproduces a failing test command in a public repository and returns the smallest change to the project's code that makes it pass, with the passing output.

5,000 credits a runEvals 13/13v0.1.0
Code

Dependency Upgrader

dependency upgrade agent

Dependency Upgrader upgrades a public GitHub repository within its semver ranges, fixes the project's code when that breaks its tests, and returns the diff and the results.

8,000 credits a runEvals 10/10v1.0.0
Code

Code Oracle

code search agent

Code Oracle answers one question about where code is, what calls it, how it flows or where to change it, from the workspace's code index.

FreeEvals 202/212v0.2.0

Every Slipstream agent