Open Source

Open Source PentestingRead the code, run the agent, keep the data.

Strix is a Python package with an Apache-2.0 license and more than 50,000 stars on GitHub.
It runs on your hardware, against your targets, with whatever model you choose.

Trusted by security teams at

AWSPayPalUberCiscoCheggFortinetByteDanceDuckDuckGoFordConvexPhilipsPfizer

What open source pentesting looks like here

You install Strix with pip and run it from a terminal. The agent works inside a Docker container on a machine you own, talks to the model endpoint you configure, and writes findings to a folder on disk. Every prompt, every tool the agent can call, and the whole sandbox setup sit in the repo where your security team can read them. The license is Apache-2.0, so running it in a commercial product is fine.

Why teams pick the self-hosted route

Source code and traffic tend to be the two things a security team refuses to hand over.

One command to start

pip install strix-agent, then point it at a repo or a URL. First run takes about a minute.

Any model you like

OpenAI, Anthropic, Google, Bedrock, Vertex, OpenRouter, or a local model served through Ollama or vLLM.

Works air-gapped

With a local model and a local target, the agent never opens an outbound connection.

Auditable by design

The prompts and skill files are plain markdown in the repo. Read what the agent was told before you trust what it did.

Extend it

Add a skill file and the agent picks up your house methodology, your payloads, and your internal tooling.

An active project

Over 50,000 stars, 5,000 forks, and a Discord where people post what they broke this week.

What ships in the repo

The parts that would otherwise be someone else's black box.

The agent runtime

Task loop, memory compression, and the graph that lets one agent spawn others.

The tool belt

Shell, browser driver, HTTP proxy, and the code search the agent uses to read your repo.

Skills

Markdown playbooks for SSRF, IDOR, auth bypass, and the rest of the catalog.

The sandbox

A Kali-based container image with the blast radius already fenced off.

Human in the loop

Chat with the agent mid-run to steer it toward a suspicious endpoint, hand it credentials, or ask why it took a path.

BYO credentials

Your model keys stay in your environment. Nothing routes through a vendor.

Self-hosted agent vs vendor cloud

Where your code sits during a test changes what a security review has to cover.

Where source code goes

Strix, self-hosted

Stays on your machine

Typical SaaS pentest tool

Uploaded to the vendor
Where the agent runs

Strix, self-hosted

Your Docker host or CI runner

Typical SaaS pentest tool

Vendor cloud
Model choice

Strix, self-hosted

Any provider, including local

Typical SaaS pentest tool

Whatever the vendor picked
Air-gapped operation

Strix, self-hosted

yes

Typical SaaS pentest tool

no
Read the prompts and tools

Strix, self-hosted

yes

Typical SaaS pentest tool

no
Modify the methodology

Strix, self-hosted

yes

Typical SaaS pentest tool

no
License

Strix, self-hosted

Apache-2.0

Typical SaaS pentest tool

Proprietary
Cost to start

Strix, self-hosted

Free

Typical SaaS pentest tool

Annual contract

From issue to fix in seconds

Find critical issues, auto-validate, and auto-fix with merge-ready PRs.

Issues/STR-00847

SSRF via URL Parameter in /api/proxy

OpenHigh · 8.6CWE-918

TL;DR

The /api/proxy endpoint accepts a user-supplied URL without validation. An attacker can access internal services, read cloud metadata, and exfiltrate credentials.

Impact

Access to cloud metadata at 169.254.169.254, potential credential theft, and internal network scanning.

Location

acme/api · proxy-handler.ts:23
GET/api/proxy?url=

Severity

High

CVSS

8.6

Fix Effort

Low

Discovered

2h ago

Discover & Validate

Pentests your entire attack surface continuously. Reproduces each finding, confirms exploitability with proof, and prioritizes by real impact.

FixReproduction

How do I fix it?

Validate and restrict the target URL using an allowlist of permitted hostnames. Reject private/internal IP ranges and enforce HTTPS-only.

proxy-handler.ts:23-29Copy
2323 const targetUrl = req.query.url;
24 const resp = await fetch(targetUrl);
24 const parsed = new URL(targetUrl);
25 if (!ALLOWED_HOSTS.has(parsed.hostname)) {
26 throw new ForbiddenError("blocked");
27 }
28 const resp = await fetch(parsed.href);
2529 return res.json(await resp.json());
Fix verified — vulnerability no longer exploitable
PR #247 fix/ssrf-proxy-handler ready to merge

Auto-Fix

Generates a fix, retests to confirm the vulnerability is gone, and delivers a merge-ready PR. Review, merge, done.

Frequently asked questions

The practical questions about running it yourself.

The agent is on GitHub under Apache-2.0 at github.com/usestrix/strix, with more than 50,000 stars and 5,000 forks. You can fork it, change it, and ship it inside something commercial.

Clone it and run a test

Apache-2.0, no signup, no credit card.