mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dev Toolsevaluationupdated 27 Aug 2026

nuclei review

Nuclei is a command-line vulnerability scanner that sends checks described in YAML templates against websites, APIs, networks, DNS, and other targets. It lets security teams reuse community detections and write their own repeatable checks instead of building a scanner for each vulnerability.

+136stars / 7d
Verdict

Our Nuclei run installed 758 packages and built in 269 seconds, but 3 of 143 tests failed with no cause visible in the supplied tail. Authorized security teams should still trial it because the template model makes focused, repeatable checks easy to inspect. Keep templates pinned and reviewed, disable unneeded execution protocols, and verify findings before they enter a ticket or report.

We ran it

Lab card: what happened when we ran nucleiScreenshot of nuclei (docs.projectdiscovery.io/tools/nuclei)
Install✓ · 76s758 packages
Build✓ · 269s
Tests✗ · 260s140 passed · 3 failed of 143 (go test)
Repo1278 files~139,896 lines of source · 18.3 MB · 13 CI workflows · Dockerfile

Answers from our run

Does nuclei build from source?

Dependencies installed in 76 seconds (758 packages), and the build succeeded in 269 seconds. We cloned commit 84b464e into a clean Debian container with 3 CPUs and no project-specific setup.

Do nuclei's tests pass?

Not all of them: 140 of 143 passed and 3 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use nuclei?

Anyone without explicit permission to probe the target: Nuclei can send active HTTP, DNS, TCP, headless-browser, fuzzing, and code-driven checks at high concurrency.

What are the alternatives to nuclei?

OWASP ZAP, Trivy, Nmap. Our Nuclei run installed 758 packages and built in 269 seconds, but 3 of 143 tests failed with no cause visible in the supplied tail.

Setup3/5Simple CLI install; large Go graph and 3 test failures
Docs5/5Extensive flags, examples, templates, and operational guidance
Community5/5Same-week activity across engine and template work
Maturity4/5Established scanner, but releases still warn of breaking changes

Who it’s for

Security engineers scanning assets they own or are explicitly authorized to test.
Penetration testers who want inspectable YAML checks for known flaws and misconfigurations.
Application teams adding focused vulnerability regression checks to CI.
Researchers prepared to review templates, tune rate limits, and verify findings before reporting them.

Who it’s NOT for

Anyone without explicit permission to probe the target: Nuclei can send active HTTP, DNS, TCP, headless-browser, fuzzing, and code-driven checks at high concurrency.
Teams wanting a point-and-click scanner with commercial support: the open-source project is a CLI, while the managed team features sit in ProjectDiscovery's paid products.
Developers embedding it as an exposed service without a separate security design: the README explicitly warns that service operation may pose security risks.
Pipelines that must accept SARIF without a validation step: open issue 7313 reports that exported SARIF fails rules in Microsoft's validator.
Operators who run unreviewed code templates: open issue 7663 documents a metadata-cache path that treated changed unsigned code as verified.
Builders pinned below Go 1.24.2, which the current installation instructions require.

Setup reality

Our sandbox installed 758 Go packages in 76 seconds and built Nuclei in 269 seconds. Tests failed after 260 seconds: 140 passed and 3 failed out of 143. The supplied log tail lists successful packages followed by FAIL, so it does not reveal which three tests failed or why.

The basic CLI needs no account, though cloud uploads and private services need credentials. Real scans also need an authorized target list, selected templates, rate and concurrency limits, output handling, and secrets for authenticated checks. Headless templates may need Chrome.

The checkout had 1,278 files, about 139,896 source lines, and used 18.3 MB before dependencies. A Dockerfile and 13 CI workflow files are present. Template trust is an operational concern because JavaScript and code protocols can do more than send simple HTTP requests.

YAML templates make checks readable and repeatable

Nuclei separates the scanning engine from the detection logic. A template describes requests, matchers, extractors, metadata, and severity, while the Go CLI schedules that work across targets. Security engineers can inspect the exact condition behind a finding, keep a private template beside an application, and rerun it after a fix. The separate community template library supplies checks for published vulnerabilities, exposures, default credentials, and common configuration mistakes.

The protocol range is much wider than HTTP. Current flags cover DNS, TCP, SSL, WebSocket, WHOIS, headless browsing, JavaScript, file checks, workflows, and code templates. That breadth is useful for one scanner feeding several security jobs. It also means a template is active content. A reviewer should distinguish a request-only YAML check from one that launches a browser, reads a file, or invokes code on the scanning host.

The README describes zero false positives as a goal, not a result we measured. Multi-step matchers can reduce noisy guesses by checking the condition that proves a flaw, yet template quality and target behavior still decide the output. Treat each finding as a reproducible lead. Preserve the template ID, engine version, request evidence, and response evidence so another engineer can confirm it.

What happened when we ran it

Our sandbox cloned commit 84b464e with 3 CPUs, 8 GB of RAM, Go 1.24, and no secrets. Installation succeeded in 76 seconds and fetched 758 packages. The build succeeded in 269 seconds. Those numbers make the first source build a several-minute job even before a template library or target scan enters the picture.

Tests ran for 260 seconds and returned exit code 1. The Go parser counted 140 passes and 3 failures out of 143. The supplied tail shows a sequence of successful packages under template execution, types, utilities, and workflows, then a final FAIL. It does not name the failed cases or print their errors, so assigning a cause would be guesswork. The useful conclusion is limited: the complete command did not pass in our fresh Debian container.

The repository held 1,278 files, about 139,896 lines of source, and 18.3 MB of checked-out data. We found 13 CI workflow files and a Dockerfile, but no top-level tests directory. Go tests live beside packages, so that directory signal does not imply an absence of tests. The 143 recorded results show that the harness found and ran them.

Default concurrency needs an owner-approved target list

The CLI defaults shown in the README include 150 requests per second, 25 templates in parallel, 25 hosts per template, and 120 JavaScript runtimes. Those are configurable ceilings, not a safe policy for every network. A production service, fragile appliance, or third-party endpoint can react badly to a scan that is harmless in staging. Set scope, exclusions, timeouts, retries, and per-host limits before connecting Nuclei to asset inventory.

Authorization matters because fuzzing and active templates can change request paths, parameters, or protocol state. Keep written scope and use a dedicated egress identity. Authenticated scans add secret files, cookies, headers, or client certificates, all of which deserve the same handling as deployment credentials. JSONL, Markdown, database, and SARIF outputs can contain request and response material unless raw data is omitted or redacted.

CI use works best with a small profile tied to a known regression. Running the full community catalog on every commit increases time, network traffic, and triage. Pin the engine and template revisions, validate templates before execution, select IDs or tags, and fail the build only on findings your team has agreed are release blockers.

Code templates turn template trust into host trust

Nuclei exposes flags for signing templates, rejecting unsigned templates, and explicitly enabling code protocol checks. Those controls acknowledge that a code template can execute commands on the scanner. Open issue 7663 reports that v3.10.0 cached a verified result using modification time rather than a content hash, allowing changed unsigned code to inherit a prior verified state. The report remained open on August 27, 2026.

That issue does not prove every current scan is compromised. It does justify defensive choices: keep code templates disabled unless required, source templates from a controlled repository, review changes, isolate the scanner, and clear or protect caches between trust domains. The README also warns that running Nuclei as a service may create security risks. An HTTP wrapper around powerful scan flags needs authentication, tenant isolation, network controls, resource limits, and strict template selection.

SARIF users have a separate integration concern. Open issue 7313 says the generated file uploads to GitHub but fails rules in Microsoft's SARIF validator and displays limited information. Teams relying on code-scanning dashboards should validate a representative export before designing policy or reporting around it.

v3.11.1 is active, with breaking changes still expected

GitHub published v3.11.1 on August 8, 2026, and recorded the latest repository push on August 26. The release included parser and panic fixes, template verification work, JavaScript changes, and dependency updates. GitHub showed 105 open issues and pull requests combined; a separate issue search returned 61 open issues. Same-day pull requests covered cookies, JavaScript options, headless Chrome, worker cancellation, and code sandboxing.

The README still labels Nuclei active development and tells users to expect breaking changes. That is credible for a scanner whose protocols, template format, and integrations keep expanding. Pin versions in automation, read release notes, and test a known target set before upgrading. Nuclei is a strong engine for controlled, authorized checks. It becomes risky when broad scope, community templates, code execution, and unattended service access are all enabled together.

Alternatives

ProjectWhat it isPick it when
OWASP ZAPA web application scanner with desktop, daemon, automation, and proxy workflows.pick this instead when browser-proxy testing and interactive web crawling matter more than a large template catalog.
Trivy gh↗A scanner for container images, filesystems, repositories, dependencies, secrets, and configuration.pick this instead when software supply-chain and image scanning are the main job rather than probing live targets.
NmapA network discovery and service inspection tool with a mature scripting engine.pick this instead when host discovery, port mapping, and service identification come before vulnerability templates.

What people are saying

  1. [github-trending] projectdiscovery/nuclei-templates
  2. [github-trending] projectdiscovery/nuclei

Sources

  1. Nuclei README and CLI reference
  2. Nuclei v3.11.1 release
  3. Template signature cache report
  4. SARIF validation report
  5. Nuclei community templates

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →