Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft untrusted javascript: template with allowAllFiles DSN
-
DeliveryVictim runs template against attacker-controlled MySQL endpoint
-
ExploitMySQL client opens connection bypassing LFA sandbox
-
ExecutionMalicious server issues LOAD DATA LOCAL INFILE for arbitrary paths
-
ImpactScanner reads files and returns contents to attacker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion 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 chain of conditions: (1) the target runs an affected Nuclei version 3.0.0 through 3.9.x (CLI or SDK); (2) the operator executes an untrusted/attacker-supplied |
| Impact | The vendor scores this 5.3 (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N), and that vector is a fair characterization: network-reachable and unauthenticated (PR:N) but gated by high complexity (AC:H) and required user interaction (UI:R). The real limiter is UI:R combined with the trust model - exploitation requires the operator to run an untrusted/attacker-supplied |
| Exploit ScenarioDerived | An attacker publishes a seemingly benign |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Local file disclosure in ProjectDiscovery Nuclei 3.0.0 through 3.9.x lets an attacker-controlled MySQL-compatible endpoint read arbitrary files off the host running the scanner, even when the local-file sandbox (-allow-local-file-access) is disabled. The nuclei/mysql JavaScript library honors an allowAllFiles MySQL DSN option supplied by an untrusted javascript: template, so the bundled Go MySQL driver accepts LOAD DATA LOCAL INFILE requests and returns file contents to the remote server; exploitation requires an operator to run the malicious template against the attacker's endpoint (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N, 5.3). No public exploit code was identified at time of analysis, and the vendor-released fix is version 3.10.0.
RemediationAI
Vendor-released patch: upgrade to Nuclei 3.10.0, which enforces the local-file sandbox on MySQL DSNs by stripping allowAllFiles whenever -allow-local-file-access is not explicitly enabled (advisory: https://github.com/projectdiscovery/nuclei/security/advisories/GHSA-xhmx-w2j4-rw3q; fix PR: https://github.com/projectdiscovery/nuclei/pull/7473; commit: https://github.com/projectdiscovery/nuclei/commit/9611926a9a1ca99e8ed554d1b26fbeff60e06368). If immediate upgrading is not possible, treat all javascript: templates as code: disable or refuse to load untrusted and unsigned javascript: templates, and only run templates from a vetted, internal repository - the trade-off is loss of coverage for community JS templates that perform MySQL interactions. Additionally, restrict scanner egress so that scanning hosts cannot reach arbitrary attacker-controlled MySQL endpoints (allow-list internal database targets only), which breaks the trigger condition but will block legitimate external DB scanning; keep -allow-local-file-access disabled, since enabling it would only widen the exposure for this class of attack and is not required for normal template operation.
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
The flaw is a broken-access-control / sandbox-enforcement issue (CWE-284) inside Nuclei's JavaScript protocol library pkg/js/libs/mysql. Nuclei's MySQL JS client is built on the go-sql-driver/mysql driver, which exposes an allowAllFiles DSN parameter that permits the client to honor server-initiated LOAD DATA LOCAL INFILE requests - a mechanism that lets a malicious MySQL server instruct the client to read any file on the local filesystem and transmit its contents back. Nuclei relies on a separate -allow-local-file-access (-lfa) sandbox (surfaced through protocolstate.IsLfaAllowed and a per-template ExecutionId) to gate local file reads, mirroring the restriction applied to the fs.ReadFile JS helper. Prior to 3.10.0 the mysql library parsed and opened the attacker-supplied DSN verbatim, so allowAllFiles=true in a javascript: template bypassed that gate entirely. Because javascript: templates on affected versions execute unsigned and without the -code flag, the bypass reaches both CLI and SDK deployments that accept untrusted templates. The upstream fix introduces sandboxDSN/openDB, which parses the DSN with mysql.ParseDSN, forcibly clears AllowAllFiles when lfa is not permitted, and re-formats the DSN before sql.Open - confirmed by unit tests covering lfa-disabled, lfa-enabled, unmodified-DSN, and malformed-DSN cases. Affected components are captured by CPE cpe:2.3:a:projectdiscovery:nuclei:*:*:*:*:*:*:*:* across the 3.0.0 to pre-3.10.0 range.
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
Unauthenticated (PR:N) but requires the operator to actively run an untrusted template against an attacker endpoint (UI:R, AC:H); arbitrary local file read gives C:H with no integrity or availability impact.
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 nuclei/mysql JavaScript library does not enforce the local-file sandbox when a JavaScript template supplies the allowAllFiles MySQL DSN option. An untrusted javascript: template scanning an attacker-controlled MySQL-compatible endpoint can cause the server to issue LOAD DATA LOCAL INFILE requests for arbitrary paths, after which the scanner's MySQL client reads the files and returns their contents to the server even though -allow-local-file-access is disabled. JavaScript templates can run unsigned and without the -code flag on affected versions, and the bypass affects CLI and SDK deployments that accept untrusted templates. 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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
Sensitive environment-variable disclosure in ProjectDiscovery Nuclei (versions 3.0.0 through anything before 3.10.0) all
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-84553
GHSA-xhmx-w2j4-rw3q
NVD
CVE.org
EPSS
Exploit-DB