Skip to main content
Vigolium ships with 325 scanner modules, 208 active and 117 passive, covering the OWASP Top 10 and beyond. Run vigolium module ls for the up-to-date enabled list (the registry can grow between releases without a docs refresh). Active modules send modified requests to detect vulnerabilities; passive modules analyze existing request/response pairs without generating traffic. Recent additions include sourcemap-ingest (v0.4.9), the v0.3.8 batch (ssi-injection, server-side-js-injection, smtp-header-injection, react-rsc-rce, dependent-response, path-relative-stylesheet), the GraphQL security suite, the Adobe Experience Manager (AEM) family, the SaaS data-exposure family (Salesforce / ServiceNow / Power Pages), the Model Context Protocol (MCP) suite, the expanded IIS family, the dependency-confusion and js-beautify passives, and the v0.2.1 batch (out-of-band SQLi, XPath injection, unauthenticated infra-service exposure, TLS protocol/cipher audit, session fixation, and the LLM-endpoint / payment-integration / DOM-clobbering / CSS-injection / cross-origin-isolation / reverse-tabnabbing passives) — filter the list by tag with vigolium module ls graphql, vigolium module ls aem, salesforce, servicenow, powerpages, mcp, or iis (the positional filter matches on id, name, description, and tag; vigolium module ls --tags dumps every known tag).
The Module ID column is the exact id -m / --module-id and --module-tag expect (vigolium scan-url -m xss-stored,sqli-error-based). Ids carry no active- / passive- prefix — --module-id requires an exact match and -m falls back to substring matching, so a prefixed name selects nothing.

Severity Scale

critical > high > medium > low > suspect > info

Confidence Scale

  • certain - Definitively confirmed (payload executed, error matched)
  • firm - Likely confirmed by behavioral analysis
  • tentative - Possible but unconfirmed (heuristic-based)

Hardening advisories (hygiene)

Fourteen modules tagged hygiene report a missing best-practice control rather than an exploitable condition: absent security headers, weak TLS protocol and cipher policy, cookie and session-cookie attributes, and the CSP / HSTS / SRI / Permissions-Policy / COOP audits. They are cheap to run and fire on nearly every response, so on a crawl of any size they contribute one near-identical Info/Low row per URL and bury the findings worth triaging.
They do not run below --intensity deep (v0.5.0). A report that counted on those rows will come back shorter until you turn them back on.
Three ways to get them back:
dynamic-assessment.hygiene_modules sets the default for a broad (["all"]) selection: true runs them at every intensity, false suppresses them even at deep. Naming them explicitly with --module-tag or --module-id always wins, the same way an explicit selection already bypasses the intensity tier ceiling.
The Info-tier fingerprints, the endpoint/param observers and surface-scoring are not in this set - their output feeds tech tags, scoring and active-module targeting, so they still run at every intensity. Neither is clickjacking-detect, which stays on at Medium.

Active Modules (208)

Active modules send modified requests to detect vulnerabilities via fuzzing, injection, and behavioral analysis. Every registered active module is listed below; vigolium module ls --type active prints the same set from your installed build.

XSS

SQL Injection

NoSQL Injection

Template Injection

File Inclusion

Code Execution & Injection

SSRF & Out-of-Band (OAST)

Misconfiguration

Access Control

Path Analysis

Differential & Behavior Detection

Prototype Pollution

Race Conditions

XML, JWT & HTTP Protocol

API & Endpoint Security

Proxy & Utility

SQL Injection (Time-Based)

SSRF & SSTI (Blind)

Framework Security

Next.js

Spring / Java

Django / Flask / FastAPI (Python)

Laravel / Symfony / PHP

Rails (Ruby)

Express (Node.js)

ASP.NET / IIS

Firebase

Cloud Infrastructure

CMS (WordPress, Drupal, Joomla, Magento)

Adobe Experience Manager (AEM)

Every module gates on a confirmed AEM instance (passive-aem-fingerprint), is detection-only, and confirms across multiple rounds.

SaaS Platforms (Salesforce / ServiceNow / Power Pages)

Each family gates on a live per-vendor fingerprint, pairs a catch-all negative control with the positive, and confirms across multiple rounds.

Model Context Protocol (MCP)

Audited against OWASP; every active probe gates on a reachable MCP endpoint (passive-mcp-endpoint-detect).

Passive Modules (117)

Passive modules analyze existing request/response pairs without sending new traffic.

XSS

Authentication & Session

Injection Signals

Information Disclosure

Source & Supply-Chain Analysis

Security Headers & Configuration

CORS & Redirect

Access Control

Cryptography

Anomaly Detection

surface-scoring writes columns, not findings. It produces http_records.surface_score - an absolute, reproducible score you can rank a large sweep by - and flushes each host’s detected stack into http_records.technology. Contrast anomaly-ranking, whose risk_score is a rank within the batch a record was flushed alongside, so it answers “is this unusual here” rather than “is this worth attacking”. See Probe → Attack-surface scoring.

JS Framework Security (Runtime Analysis)

JS Framework Security (Source Analysis)

Framework Fingerprinting

API & Protocol Analysis

Security Headers & Policy

Cloud & Firebase

CMS Detection

Advanced JS Framework Analysis

Session & Authentication (Passive)