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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vulnlogic-2.0.1.tar.gz.
File metadata
- Download URL: vulnlogic-2.0.1.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25681c38c5b80f15a20c08f91cd5fd7ea06405393e88b9720ffe4135a690693f
|
|
| MD5 |
9e794ea911dbe0b98443d39ea3a62821
|
|
| BLAKE2b-256 |
66c5a1178924285bce22dfa66d32f14e78fb0a98d4f5dda10e681a23eb83b134
|
File details
Details for the file vulnlogic-2.0.1-py3-none-any.whl.
File metadata
- Download URL: vulnlogic-2.0.1-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f300bafe6c3149c344ba728aedef95873b07c059bef0a7116e926e61dc6682e0
|
|
| MD5 |
0ef19ee4df0ae3d33070357fcce942c2
|
|
| BLAKE2b-256 |
09978c9317bb4dc2d96f0f0900646a3403c686ec5c12b546bed31f63243de45f
|