VulnLogic CLI
Free, zero-config API penetration testing from your terminal.
The free tier runs 6 deterministic logic-flaw modules — IDOR, Mass Assignment, Function-Level Auth Bypass, Horizontal Privilege Escalation, Race Condition, and Workflow Bypass — with no signup, no API key, and no manual setup. The CLI automatically creates its own test accounts against your target when you don't supply a token.
A full 63-module platform (SQLi, SSRF, JWT attacks, PDF reports, dashboards) is in development — get notified when it ships.
Never used a terminal before?
No problem — here is everything you need, step by step.
1. Open a terminal.
- Mac: press
Cmd + Space, typeTerminal, hit Enter. - Windows: press the Windows key, type
PowerShell, hit Enter. - Linux: press
Ctrl + Alt + T.
2. Check if Python is installed. Type this and press Enter:
python3 --version
If you see something like Python 3.11.5, skip to step 4. If you see
"command not found," install Python first (step 3).
3. Install Python (only if step 2 failed).
- Mac: install Homebrew, then run
brew install python@3.11. - Windows: download Python from python.org/downloads and run the installer — check "Add Python to PATH" during setup.
- Linux:
sudo apt install python3(Ubuntu/Debian) orsudo dnf install python3(Fedora).
4. Install VulnLogic:
pip install vulnlogic
5. Run your first scan. Replace the URL with the API you want to test:
vulnlogic scan --free --target "My API" --base-url https://api.yourapp.com --spec openapi.json
Don't have an OpenAPI spec file? Most APIs built with FastAPI, Django REST
Framework, or similar frameworks expose one automatically — check
/openapi.json or /swagger.json on your API's base URL.
What happens next: VulnLogic automatically creates a couple of throwaway test accounts on your API, then runs 6 security checks. If it finds something, you will see a table listing what it found and how to fix it. If not, you will get a clean "All clear" message.
Install
pip install vulnlogic
Quick Start
# Free scan — zero config, no token needed
vulnlogic scan --free --target myapi --base-url https://api.acme.com --spec openapi.json
That's it. VulnLogic will register its own throwaway test accounts against your target, run all 6 free modules, and report any findings.
Usage
# Free scan — no token, no signup
vulnlogic scan --free -t myapi -u https://api.acme.com -s openapi.json
# Free scan with your own token instead of auto-provisioning
vulnlogic scan --free -t myapi -u https://api.acme.com -s openapi.json --token eyJ...
# IDOR testing with two known accounts (skips auto-provisioning)
vulnlogic scan --free -t myapi -u https://api.acme.com -s openapi.json \
--token eyJ... --victim-token eyJ...
# JSON output
vulnlogic scan --free -t myapi -u https://api.acme.com -s openapi.json --output json
# CI/CD — SARIF output + exit code 1 on high+ findings
vulnlogic scan --free -t myapi -u https://api.acme.com -s openapi.json \
--output sarif --output-file results.sarif --fail-on high
# List available modules
vulnlogic modules
GitHub Actions Example
- name: API Security Scan (free tier)
run: |
pip install vulnlogic
vulnlogic scan --free \
--target ${{ github.repository }} \
--base-url ${{ secrets.API_URL }} \
--spec openapi.json \
--output sarif \
--output-file vulnlogic.sarif \
--fail-on high
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: vulnlogic.sarif
Free Tier Modules
| Module | What it catches |
|---|---|
| IDOR | Accessing another user's data by changing an identifier |
| Mass Assignment | Injecting protected fields (e.g. admin: true) into a request body |
| Function-Level Auth Bypass | Regular users reaching admin-only endpoints |
| Horizontal Privilege Escalation | Acting on another user's resource via a tampered identity field |
| Race Condition | Concurrent requests bypassing balance/quota checks |
| Workflow Bypass | Skipping required steps in a multi-step process (e.g. refund before payment) |
63 modules total are planned for the full platform, covering injection (SQLi, NoSQLi, SSRF, XXE), authentication (JWT attacks), infrastructure (CORS, GraphQL, HTTP smuggling), file upload, cryptography, WebSocket, and multi-tenant isolation — join the waitlist to get notified when they ship.
Metadata
Release files for vulnlogic 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vulnlogic-2.0.1.tar.gz | 17.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vulnlogic-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.7 kB
Release files / vulnlogic-2.0.1.tar.gz
| Download URL | vulnlogic-2.0.1.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25681c38c5b80f15a20c08f91cd5fd7ea06405393e88b9720ffe4135a690693f
|
|
BLAKE2b-256 checksum How to use checksums |
66c5a1178924285bce22dfa66d32f14e78fb0a98d4f5dda10e681a23eb83b134
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|
Release files / vulnlogic-2.0.1-py3-none-any.whl
| Download URL | vulnlogic-2.0.1-py3-none-any.whl |
|---|---|
| Size | 17.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f300bafe6c3149c344ba728aedef95873b07c059bef0a7116e926e61dc6682e0
|
|
BLAKE2b-256 checksum How to use checksums |
09978c9317bb4dc2d96f0f0900646a3403c686ec5c12b546bed31f63243de45f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|