[BUG] Request Parallelization and Hang Monitoring Issues #6506
Unanswered
zachsanchez113
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hey y'all,
There are two issues that I've come across that I'd like to bring to your attention, or at least get your thoughts on:
Context
I'm trying to scan my company's domains en-masse (>10,000 in total), and I discovered these issues while experimenting with batching and:
Environment
Issue 1: Incomplete Request Parallelization
Description: Requests are not parallelized in all template scenarios. Parallelization seems to only occurs for specific template classes (e.g. templates using payloads), while templates with multiple paths execute requests sequentially.
Specifically, in
pkg/protocols/http/request.go
, theExecuteWithResults
function contains afor
loop that processes each request (generator.nextValue
) sequentially, even when templates contain multiple paths that could be executed in parallel.Specific Case: bitbucket-oauth-exposure, which has over 50 distinct requests that get executed sequentially due to the lack of parallelization. As a result, when run against a single domain that's unresponsive or consistently times out, a scan that should take less than a minute ends up taking nearly half an hour. Or even if it does respond and is just slow to do so. (Nevermind a large list of domains with ephemeral domains that could disappear mid-scan!)
Issue 2: Hang Monitor False Positives
Description: The hang monitor incorrectly identifies legitimate sequential processing as hangs due to hardcoded timing assumptions.
Specifically, the hang monitor checks goroutine stacks every 10 seconds, regardless of configured timeout values. This produces a false positive when:
Specific Case: Same template and target as before. With 30-second timeouts and sequential request processing, the hang monitor triggers false positives because goroutine stacks remain similar during legitimate timeout periods.
Proposed Fix: In
cmd/nuclei/main.go
, modify thestackMonitor.Start
call:Beta Was this translation helpful? Give feedback.
All reactions