How does nuclei need to be started to get the best output? 3 different runs and less/different findings #6817
-
|
I'm a bit puzzled. I did a nuclei simple scan from the OWASP Juice Shop. After the first run I did the same nuclei scan again. Got 22 findings. But on the 2nd run some findings from run no1 where missing. Got only 2 findings? Why is that? And if I do a automatic-scan Why do the findings from no2 and no3 differ from no1? OS: kal linux 2026.1 |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
|
Great question — this is a common source of confusion with nuclei's project mode. Here's what's happening across your 3 runs: Why Results Differ Between RunsRun 1 → Run 2 (22 findings → 2 findings)When you use This is by design — project mode is meant for continuous/incremental scanning where you only want to see new findings, not repeat everything. Run 3 with
|
| Mode | Use Case | Shows |
|---|---|---|
No --project |
One-off full scan | ALL findings every time |
--project |
Incremental monitoring | Only NEW findings since last run |
-as |
Quick targeted scan | Only findings relevant to detected tech stack |
For a complete security assessment, don't use --project unless you specifically want deduplication across multiple runs.
Beta Was this translation helpful? Give feedback.
-
|
Great question — this is a common source of confusion with nuclei's project mode. Here's what's happening across your 3 runs: Why Results Differ Between RunsRun 1 → Run 2 (22 findings → 2 findings)When you use This is by design — project mode is meant for continuous/incremental scanning where you only want to see new findings, not repeat everything. Run 3 with
|
| Mode | Use Case | Shows |
|---|---|---|
No --project |
One-off full scan | ALL findings every time |
--project |
Incremental monitoring | Only NEW findings since last run |
-as |
Quick targeted scan | Only findings relevant to detected tech stack |
For a complete security assessment, don't use --project unless you specifically want deduplication across multiple runs.
Beta Was this translation helpful? Give feedback.
-
|
Thanks for the thorough explanation. That helps to understand how nuclei is working. swagger-apiI copied the finding with the swagger-api from the first run: severityAs you mentioned the severities: |
Beta Was this translation helpful? Give feedback.
-
|
This is expected behavior with nuclei and is related to a few factors: 1. Template execution ordering 2. Rate limiting and connection reuse 3. Best practices for consistent results: # Pin template execution order with rate limiting
nuclei -u http://localhost:3000 -rl 50 -c 10 -project --project-path juiceshop-nuc -timeout 10
# Run specific template categories separately for cleaner output
nuclei -u http://localhost:3000 -tags cve -o cve-results.txt
nuclei -u http://localhost:3000 -tags misconfig -o misconfig-results.txt4. For reproducible scans:
The variance in findings across runs is normal — it's the nature of concurrent scanning against dynamic web apps. Running with lower concurrency and rate limits will give more consistent results at the cost of speed. |
Beta Was this translation helpful? Give feedback.
-
|
This is expected behavior and relates to a few factors: 1. Template execution ordering 2. Rate limiting and connection reuse 3. Best practices for consistent results: # Pin template execution order with rate limiting
nuclei -u http://localhost:3000 -rl 50 -c 10 -project --project-path juiceshop-nuc -timeout 10
# Run specific template categories separately for cleaner output
nuclei -u http://localhost:3000 -tags cve -o cve-results.txt
nuclei -u http://localhost:3000 -tags misconfig -o misconfig-results.txt4. For reproducible scans:
The variance in findings across runs is normal — it's the nature of concurrent scanning against dynamic web apps. Running with lower concurrency and rate limits will give more consistent results at the cost of speed. |
Beta Was this translation helpful? Give feedback.
This is expected behavior with nuclei and is related to a few factors:
1. Template execution ordering
Nuclei uses concurrent goroutines to execute templates. The order templates fire in is non-deterministic, which means race conditions between templates can produce different results — especially for dynamic/stateful targets like Juice Shop.
2. Rate limiting and connection reuse
Subsequent runs may hit different rate limits or reuse cached connections. The
-projectflag helps deduplicate but doesn't guarantee identical ordering.3. Best practices for consistent results:
# Pin template execution order with rate limiting nuclei -u http://localhost:3000 -rl 50 -c 10 -project --project-path ju…