Find IDOR, missing authorization, SQL injection, and 30+ vulnerability types in Python, JavaScript, Go, Java, and C#. 100% CVE recall. Zero false positives on clean code. Fully offline. No API keys needed.
Project description
🛡️ Guardmarly — Find authorization bugs before attackers do
The only free SAST with built-in IDOR detection. 100% CVE recall. Fully offline.
pip install guardmarly && guardmarly src/
The problem
Authorization bugs — IDOR, missing access controls, privilege escalation — caused some of the largest data breaches in history. Most SAST tools can't find these bugs because they require tracing data from HTTP routes through auth guards into database queries.
What Guardmarly does differently
@app.route("/invoice/<id>")
def get_invoice(id):
return Invoice.query.get(id)
# ↑ CWE-639 IDOR: any user can view any invoice
# Bandit: silent. Semgrep OSS: silent. CodeQL: silent.
# Guardmarly: 🚨 CRITICAL — route flows to DB without auth check
Guardmarly maps every HTTP route, checks for auth guards, traces data flow to sinks, and flags the gap.
Quick start
pip install guardmarly
guardmarly src/ # text output
guardmarly src/ --format json -o r.json # JSON report
guardmarly src/ --format sarif # SARIF for GitHub
guardmarly --show-stats # lifetime + today counts
guardmarly --list-rules # full rule catalog
Supported languages & CWEs
5 languages: Python, JavaScript/TypeScript, Go, Java, C#
35+ CWE types: IDOR (CWE-639), Missing Auth (CWE-862/306), SQLi (CWE-89), Command Injection (CWE-78), XSS (CWE-79), Path Traversal (CWE-22), SSRF (CWE-918), Deserialization (CWE-502), Hardcoded Secrets (CWE-798), Open Redirect (CWE-601), CSRF (CWE-352), XXE (CWE-611), and 25+ more.
Contributing
git clone https://github.com/mattybellx/Guardmarly.git
cd Guardmarly && pip install -e ".[dev]"
pytest tests/ -q # 1,183+ tests in ~12s
License
MIT © Matty Bell
Project details
Release history Release notifications | RSS feed
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 guardmarly-6.4.0.tar.gz.
File metadata
- Download URL: guardmarly-6.4.0.tar.gz
- Upload date:
- Size: 892.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab7e77248ca03eccf7e90e0d8b9f0f8e2c7e5dcf0cf1504b729a6585fce9af41
|
|
| MD5 |
9c2ce985707d2051d826e4549ed917cc
|
|
| BLAKE2b-256 |
681d48c4114ee612b31f10a5458ef7b9b909fa8ed213fa8f66bc2915853ecd39
|
File details
Details for the file guardmarly-6.4.0-py3-none-any.whl.
File metadata
- Download URL: guardmarly-6.4.0-py3-none-any.whl
- Upload date:
- Size: 884.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
255f4e5da0f1df8373ccaf2da20b40a431c7e903cff21cfd45fcf2707ea48779
|
|
| MD5 |
91b67e5dd7d74e33adfe215412cc5a40
|
|
| BLAKE2b-256 |
36e26cebadccebd45a4ffaa2f1c43027fc482df815253547a55cd531d6d3d8b2
|