Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOperator runs DAST/fuzz scan with -env-vars
-
DeliveryMalicious target returns marker-shaped response
-
Exploitinternal:true extractor captures content
-
ExecutionSecond evaluation pass reinterprets it as template syntax
-
PersistEnv vars resolve against variable map
-
ImpactScanner-host credentials/API keys exfiltrated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a specific, non-default combination on the SCANNER host: (1) the operator must run a multi-step DAST or fuzz template, (2) that template must reuse response data through an internal:true extractor, and (3) the operator must explicitly enable environment-variable expansion via the -env-vars flag. The attacker must control the scan target so it can return marker-shaped content that resolves against the template variable map. Limiting factors: users who do NOT enable -env-vars are not affected by the sensitive-information disclosure; user interaction is required (an operator must initiate the scan against the malicious target); and the AC:H chain (aligning the internal extractor output with the second-pass re-evaluation) makes casual exploitation unlikely. Affects Nuclei 3.0.0 through versions before 3.10.0. |
| Impact | This is a moderate-risk, tightly-gated information-disclosure flaw that should not be treated as a broad emergency. The vendor CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N = 5.3) is internally consistent with the described attack: network vector because the malicious payload arrives in an HTTP response, AC:H because the attacker must line up a specific chain (multi-step DAST/fuzz template + internal:true extractor + the marker-shaped response resolving against the template variable map), and UI:R because a human operator must launch the scan against the attacker-controlled target. C:H with I:N/A:N is correct - the only impact is disclosure of scanner-host environment variables (credentials, API keys, tokens). No EPSS score, no CISA KEV entry, and no public POC were supplied, so exploitation status is 'no public exploit identified at time of analysis.' The high complexity plus the hard requirement that the operator explicitly enable -env-vars means real-world exploitability is narrow rather than opportunistic; the confidentiality impact is genuinely high only for that specific misconfiguration. The most important nuance is that this is explicitly an INCOMPLETE FIX of CVE-2026-41645 - the prior patch made expressions.Evaluate() single-pass within one call but left the DAST/fuzz caller re-evaluating substituted output - which raises the priority for anyone who believed 41645 fully closed the double-evaluation class. Net: a real, credible issue worth patching for teams that fuzz untrusted targets with -env-vars, but not a high-urgency, mass-exploited priority. |
| Exploit ScenarioDerived | An attacker who controls a target web application waits to be scanned by a Nuclei operator running a multi-step DAST/fuzz template with -env-vars enabled. The malicious server returns marker-shaped content that an internal:true extractor captures in one protocol step; on the second evaluation pass in a later fuzz step, that captured content is reinterpreted as template syntax and resolves against the template variable map, echoing the scanner host's environment variables (credentials, API keys, tokens) back to the attacker. No public POC was provided, and the chain's high complexity plus mandatory operator opt-in to environment-variable expansion limit practical exploitation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Sensitive environment-variable disclosure in ProjectDiscovery Nuclei (versions 3.0.0 through anything before 3.10.0) allows a malicious scan target to smuggle marker-shaped response content that is reinterpreted as template syntax in a later DAST/fuzz step and resolved against the scanner's own variable map, leaking host credentials, API keys, or tokens into scan output. The flaw is an unauthenticated, network-reachable issue (CVSS:3.1/AV:N/AC:H/PR:N/UI:R) but is tightly gated on the scanner host: the operator must run a multi-step DAST or fuzz template, that template must reuse response data through an internal:true extractor, and environment-variable expansion must be explicitly enabled with -env-vars; users who do not enable -env-vars are not affected by the disclosure. No public exploit identified at time of analysis, and this is an incomplete fix for CVE-2026-41645 remediated in Nuclei 3.10.0.
RemediationAI
Vendor-released patch: Nuclei 3.10.0 (https://github.com/projectdiscovery/nuclei/releases/tag/v3.10.0), delivered via PR 7499 / commit ccbfb12bd01447ba25f6e755dfb2bee677736da6 as detailed in advisory GHSA-jpvm-9frm-hjcq; upgrade any installation running 3.0.0 through pre-3.10.0 builds immediately. If immediate upgrade is not possible, the highest-value compensating control is to stop passing -env-vars when scanning untrusted or third-party targets - this fully removes the sensitive-information disclosure path at the cost of disabling legitimate environment-variable expansion in templates that depend on it. Additionally, avoid running multi-step DAST/fuzz templates that carry internal:true extractor output forward into later steps against attacker-controlled hosts, and run scans from an isolated host or container with a scrubbed environment (no cloud credentials, API keys, or orchestrator tokens present) so that any successful re-evaluation yields no useful secrets; note that this reduces but does not eliminate the underlying double-evaluation behavior and does not fix the root cause, so patch is still required. Detection-side, review scan histories for template runs combining -env-vars with multi-step DAST/fuzz templates against external targets and rotate any credentials that were present in the scanner host environment during such runs.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nuclei is a scanner driven by a YAML-based DSL in which template expressions are evaluated at runtime. CVE-2026-41645 previously hardened expressions.Evaluate() so that a single call is single-pass, but the DAST/fuzz path in pkg/fuzz/parts.go still fed already-substituted, runtime-derived values back into evaluation, producing a second evaluation pass. In that second pass, content returned by the scanned target and captured by an internal:true extractor in one protocol step was treated as template text rather than as opaque data, so attacker-controlled marker strings could resolve against the scanner's template variable map when -env-vars expansion was active. This is a classic CWE-200 exposure of sensitive information through an unintended evaluation boundary (template-injection/expression re-evaluation class). The upstream fix in PR 7499 (commit ccbfb12bd01447ba25f6e755dfb2bee677736da6) introduces a variables scope with EvaluateWithInteractshScope and a mergeFuzzValueLayers helper that separates template-authored values (fuzzValueTemplate) from runtime/base, CLI option, and constant values (fuzzValueData), so runtime data keys are never re-rendered; evaluateVars also switches from expressions.Evaluate to render.Render, and interactsh marker replacement is limited to template-text values.
Know when Nuclei gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
AV:N (payload via network response) and PR:N (no scanner auth), but AC:H for the multi-condition chain and UI:R since an operator must run the scan with -env-vars; C:H disclosure only, I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Nuclei is a vulnerability scanner built on a simple YAML-based DSL. From 3.0.0 until 3.10.0, the DAST/fuzz payload path in pkg/fuzz/parts.go can evaluate substituted runtime data more than once, creating a second evaluation pass that allows response content captured by an internal: true extractor in one protocol step to be reinterpreted as template syntax in a later fuzz step. This vulnerability is an incomplete fix for CVE-2026-41645: the prior remediation made expressions.Evaluate() single-pass within one call but did not prevent DAST/fuzz callers from evaluating substituted output again. When -env-vars is enabled, a malicious scan target can return marker-shaped content that resolves against the template variable map and discloses scanner-host environment variables such as credentials, API keys, or tokens. The vulnerability requires a multi-step DAST or fuzz template, response data reused through an internal extractor, and explicit environment-variable expansion; users who do not enable -env-vars are not affected by the sensitive-information disclosure. This issue is fixed in version 3.10.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Nuclei is a vulnerability scanner powered by YAML based templates. Rated high severity (CVSS 7.8), this vulnerability is
Nuclei is a vulnerability scanner. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authen
projectdiscovery/nuclei is a fast and customisable vulnerability scanner based on simple YAML based DSL. Rated high seve
Local attackers with write access to Nuclei's on-disk template storage can bypass template signature verification and ca
Local file disclosure in ProjectDiscovery Nuclei 3.0.0 through 3.9.x lets an untrusted, unsigned workflow template read
Local file disclosure in ProjectDiscovery Nuclei 3.0.0 through 3.9.x lets an attacker-controlled MySQL-compatible endpoi
Arbitrary shell command execution is possible in ProjectDiscovery Nuclei versions 3.0.0 through 3.9.x when DAST mode (-d
DSL expression injection in ProjectDiscovery Nuclei before 3.8.0 allows remote code execution when using the -env-vars f
EUVD-2026-84557
GHSA-jpvm-9frm-hjcq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB