Fix data race caused by concurrent access to the request URL during scans #448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A data race was identified when the Nuclei engine calls
request.dump()
when thenet/http
client transport for the request is still active (as part of a scan goroutine). This PR changes theUpdate()
function to clone and replace the URL, avoiding the race. This can be tricky to reproduce (might require a HTTP/2 target) and unfortunately I misplaced the original data race log that led to this fix, but it hasn't popped up again since I made this change.