Skip to main content

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.

Guardmarly logo

PyPI CI License

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


Download files

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

Source Distribution

guardmarly-6.4.0.tar.gz (892.0 kB view details)

Uploaded Source

Built Distribution

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

guardmarly-6.4.0-py3-none-any.whl (884.3 kB view details)

Uploaded Python 3

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

Hashes for guardmarly-6.4.0.tar.gz
Algorithm Hash digest
SHA256 ab7e77248ca03eccf7e90e0d8b9f0f8e2c7e5dcf0cf1504b729a6585fce9af41
MD5 9c2ce985707d2051d826e4549ed917cc
BLAKE2b-256 681d48c4114ee612b31f10a5458ef7b9b909fa8ed213fa8f66bc2915853ecd39

See more details on using hashes here.

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

Hashes for guardmarly-6.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 255f4e5da0f1df8373ccaf2da20b40a431c7e903cff21cfd45fcf2707ea48779
MD5 91b67e5dd7d74e33adfe215412cc5a40
BLAKE2b-256 36e26cebadccebd45a4ffaa2f1c43027fc482df815253547a55cd531d6d3d8b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page