Nuclei: YAML-based vulnerability scanner
Template-based multi-protocol security scanner for CI/CD pipelines.
Learn more about nuclei
Nuclei is a command-line vulnerability scanner written in Go that executes security checks defined in YAML template files. The tool processes templates through a DSL that supports multiple protocols including HTTP, TCP, DNS, SSL, WHOIS, and JavaScript execution. It performs parallel scanning with request clustering to process multiple targets efficiently. Common deployment contexts include security assessments, CI/CD pipeline integration, and regression testing workflows.
YAML-based template system
Vulnerabilities are defined as declarative YAML templates rather than compiled code, allowing security researchers to contribute detection logic without programming expertise. Templates can simulate multi-step attack scenarios to reduce false positives.
Multi-protocol support
The scanner handles HTTP, TCP, DNS, SSL, WHOIS, JavaScript, and code-based checks within a single framework. This breadth allows detection across different attack surfaces including web applications, network services, and DNS configurations.
Community-driven template library
Nuclei maintains a separate repository of templates contributed by security professionals. This distributed model enables rapid response to emerging vulnerabilities without requiring core tool updates.
package main
import (
"github.com/projectdiscovery/nuclei/v3/lib"
)
func main() {
nucleiEngine, _ := lib.NewNucleiEngine(
lib.WithTemplateFilters(lib.TemplateFilters{Severity: "critical,high"}),
)
nucleiEngine.LoadTargets([]string{"https://example.com"}, false)
nucleiEngine.ExecuteWithCallback(nil)
nucleiEngine.Close()
}Patch release fixing a segmentation fault in template caching that could crash Nuclei during scans.
- –Upgrade immediately if you encounter segfaults or unexpected crashes during template-heavy scans.
- –No configuration changes required; the fix resolves a memory safety issue in the caching layer.
Patch release fixing output event handling for skipped hosts; no breaking changes or new requirements documented.
- –Update to receive corrected output events when Nuclei skips hosts during scans.
- –Release notes do not specify breaking changes, dependency updates, or security fixes.
Maintenance release enabling concurrent engine instances in one process, fixing race conditions, and improving template loading performance.
- –Update to Go 1.24+ if using Docker builds; sonic dependency now requires Go 1.25 compatibility.
- –Review headless templates for variable usage; variables are now correctly available and extra headers merge properly.
See how people are using nuclei
Top in Security
Related Repositories
Discover similar tools and frameworks used by developers
subfinder
Passive subdomain discovery via DNS resolution and validation.
OSINT-Framework
Structured web catalog of free OSINT tools.
sigma
YAML-based detection rules with SIEM query conversion.
grype
Detect vulnerabilities in container images and filesystems.
spiderfoot
Python reconnaissance framework with 200+ OSINT modules.