Skip to main content

redveil

Evidence-first web vulnerability PoC framework. Not an exploit toolkit.

redveil is a defensive security assessment framework that runs an auditable discover → detect → safely validate → collect evidence → assess → report pipeline against a target web application. Every outbound HTTP request passes through a strict scope controller, every component reports progress through an in-process event bus, and every finding ships with reproducible request artifacts and step-by-step reproduction procedures.

status checks python license

What it is

redveil is a CLI-first framework for authorized web security assessments. You give it a scope file describing where it is allowed to send requests and what credentials to use, and it produces a Markdown / JSON / HTML report of every finding it can prove — without writing a single exploit payload. Every finding includes a sanitized cURL command that reproduces it on demand, the captured response excerpt, the CWE / OWASP taxonomy tags, attack scenarios, code examples across multiple frameworks, and ordered remediation steps.

What it is NOT

  • Not an exploit framework. No reverse shells, no persistence primitives, no credential extraction, no data exfiltration, no denial-of-service.
  • Not a destructive payload toolkit. SQLi and CMDi are time-based blind probes only — they never extract rows, never execute commands.
  • Not a public-internet scanner. The framework enforces a strict host allowlist and is intended for authorized assessment only.

Safety

Every check declares its required safety profile. The runtime refuses to execute any check that exceeds the operator's chosen profile. The profiles are PASSIVE (observation only), LOW_IMPACT (safe probes), and ACTIVE (authenticated IDOR, time-based blind SQLi, OOB SSRF via the operator's callback domain, time-based CMDi detection — each bounded and non-destructive).

The ACTIVE profile requires explicit acknowledged_safety_terms=true in the scope file. The framework will not include reverse shells, persistence, credential extraction, denial-of-service, or data destruction — by design and going forward.

Use only against systems you own or have explicit written authorization to test. The authors disclaim all responsibility for unauthorized use.

Quick example

# Install
git clone https://github.com/your-org/redveil.git
cd redveil
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Scan a public surface with default (PASSIVE) checks
redveil scan https://staging.example.com --scope examples/scope.staging.yaml

# List all built-in check plugins
redveil list-checks

# Re-render a report from an existing findings.json
redveil report reports/staging.example.com

Reports land under reports/<target-name>/ as summary.md, findings.json, per-finding findings/<id>.md, and a self-contained report.html.

Status

All five development phases are complete:

  • Phase 1 — Configuration, scope controller, rate-limited HTTP client, plugin registry, event bus, lifecycle state machine, CLI.
  • Phase 2 — Finding model, evidence store with sanitization, vulnerability knowledge base, deduplicator, report renderers.
  • Phase 3 — Discovery (crawler, subdomain finder) and passive check plugins (security headers, CORS, methods, disclosure, source maps, open redirect indicator, session cookie).
  • Phase 4 — Low-impact check plugins (reflected XSS, source map fingerprinting, additional disclosure heuristics).
  • Phase 5 — Active check plugins (time-based blind SQLi, OOB SSRF, time-based CMDi, path traversal indicator, BOLA / IDOR across multiple test principals, BFLA, GraphQL introspection, mass assignment).

The release ships with 17 built-in check plugins and 900+ unit and integration tests. The local vulnerable Flask lab under tests/lab/ exercises the full pipeline end-to-end.

Architecture

The package is organized into focused subpackages:

  • core — orchestration, scope control, event bus, lifecycle
  • http — async HTTP client, request/response abstractions, rate limiter
  • discovery — crawling, endpoint and parameter enumeration
  • checks — 17 built-in vulnerability check plugins
  • validation — safe-in-place validators and PoC executors
  • evidence — request/response capture, hashing, sanitization
  • findings — finding model, severity scoring, deduplication
  • reporting — report renderers (Markdown, JSON, HTML)
  • plugins — plugin discovery and the Check base class
  • cli — Typer-based command-line interface

Plugins

Every check is a plugin. Adding a new check means subclassing redveil.plugins.base.Check, declaring metadata (id, name, category, safety profile, CWE / OWASP tags), and registering through the redveil.checks entry-point group:

[project.entry-points."redveil.checks"]
my-check = "my_pkg.checks.my_check:MyCheck"

The orchestrator wires each plugin with the framework's HTTP client and scope controller. Plugins cannot instantiate their own HTTP client — bind() validates that the supplied client is bound to the orchestrator's scope.

Documentation

  • USER_GUIDE.md — installation, concepts, CLI reference, scope configuration examples, output interpretation, safety, and troubleshooting.
  • CHANGELOG.md — version history and release notes.
  • docs/architecture.md — internal architecture, request lifecycle, safety model, plugin contract, event taxonomy, and testing strategy.
  • examples/ — runnable scope file templates for staging, authenticated, multi-principal, and OOB scenarios.

License

MIT — see LICENSE.

Disclaimer

This tool is provided for defensive security testing only. The authors disclaim all responsibility for any unauthorized or unlawful use. Always obtain explicit, written authorization before testing any system you do not own.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redveil-0.1.0.tar.gz (224.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

redveil-0.1.0-py3-none-any.whl (184.8 kB view details)

Uploaded Python 3

File details

Details for the file redveil-0.1.0.tar.gz.

File metadata

  • Download URL: redveil-0.1.0.tar.gz
  • Upload date:
  • Size: 224.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.5

File hashes

Hashes for redveil-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1c1608cc4b119fc8653259713731218933dfd4a3def2a73ef6004291974d6ee1
MD5 a4d4be6ffdd6ae9df51c575d8e8191ab
BLAKE2b-256 875fc2ab247fc67ad543f43d7b736e7ca924e86d05d7b0164a0acbcab64c1a84

See more details on using hashes here.

File details

Details for the file redveil-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: redveil-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 184.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.5

File hashes

Hashes for redveil-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 942c6f48002eb476926b266cf8a5c631a078332f1950abc3abf83ad7e0b650c9
MD5 d72bdb8e4df0feb8232dbcbd545c5f5c
BLAKE2b-256 ec30c4777c0f96e7062575a5b5a835c898287909a091f39e461aeef7a02de48e

See more details on using hashes here.

Release history Release notifications | RSS feed

1.9.6

2 files

1.9.5

2 files

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.0

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page