Skip to content

🐛 fix Nuclei deduplication #12397 #12405

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: bugfix
Choose a base branch
from

Conversation

manuel-sommer
Copy link
Contributor

@github-actions github-actions bot added the settings_changes Needs changes to settings.py based on changes in settings.dist.py included in this PR label May 7, 2025
Copy link

dryrunsecurity bot commented May 7, 2025

DryRun Security

This pull request introduces a potential security concern with the new 'endpoints' attribute in Nuclei Scan configuration, which might inadvertently expose sensitive network or infrastructure details if not carefully managed.

💭 Unconfirmed Findings (1)
Vulnerability Potential Information Exposure via Endpoint Tracking
Description The new 'endpoints' attribute in Nuclei Scan configuration may expose detailed network or application endpoint information. This could lead to unintended revelation of sensitive infrastructure details if access and visibility are not properly controlled, presenting a potential security risk through expanded metadata tracking.

All finding details can be found in the DryRun Security Dashboard.

Copy link
Member

@valentijnscholten valentijnscholten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you put a one liner in the description to make it clear what is fixed?

Also could you explain why it is needed to add the endpoints to the hash codes. I haven't looked at the source code, but my understanding is that endpoints are always considered, even when they are not explicitly part of the hash code fields:

# Allows to deduplicate with endpoints if endpoints is not included in the hashcode.
# Possible values are: scheme, host, port, path, query, fragment, userinfo, and user. For a details description see https://hyperlink.readthedocs.io/en/latest/api.html#attributes.
# Example:
# Finding A and B have the same hashcode. Finding A has endpoint http://defectdojo.com and finding B has endpoint https://defectdojo.com/finding.
# - An empyt list ([]) means, no fields are used. B is marked as duplicated of A.
# - Host (['host']) means: B is marked as duplicate of A because the host (defectdojo.com) is the same.
# - Host and path (['host', 'path']) means: A and B stay untouched because the path is different.
#
# If a finding has more than one endpoint, only one endpoint pair must match to mark the finding as duplicate.
DEDUPE_ALGO_ENDPOINT_FIELDS = ["host", "path"]

Maybe the parser must be updated to mark the findings as dynamic?

@Maffooch
Copy link
Contributor

Maffooch commented May 8, 2025

Maybe the parser must be updated to mark the findings as dynamic?

I was thinking something similar. Some parsers aggregate endpoints by their finding. I think that should be implemented here as well. Tenable is great example of this use case

@manuel-sommer
Copy link
Contributor Author

Hm, I am not really sure how to proceed here. You are right @valentijnscholten, I wasn't aware that endpoints are always considered. Furthermore, the Finding is dynamic by default:

dynamic_finding = models.BooleanField(default=True,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
settings_changes Needs changes to settings.py based on changes in settings.dist.py included in this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants