Skip to main content

Nuclei CVE-2026-76803

| EUVDEUVD-2026-84553 MEDIUM
Improper Access Control (CWE-284)
2026-09-22 GitHub_M GHSA-xhmx-w2j4-rw3q
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft untrusted javascript: template with allowAllFiles DSN
  2. Delivery
    Victim runs template against attacker-controlled MySQL endpoint
  3. Exploit
    MySQL client opens connection bypassing LFA sandbox
  4. Execution
    Malicious server issues LOAD DATA LOCAL INFILE for arbitrary paths
  5. Impact
    Scanner 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 javascript: template - these run unsigned and without the -code flag on affected versions, so they are not blocked by template signing; (3) the template uses the nuclei/mysql library with a DSN containing the allowAllFiles=true MySQL option; and (4) the scan targets a MySQL-compatible endpoint the attacker controls, which replies with LOAD DATA LOCAL INFILE requests. Critically, the bypass works even when -allow-local-file-access (-lfa) is DISABLED (the default), which is the whole point of the flaw. The limiting factor is UI:R - a human must actively run the malicious template against the malicious endpoint - so it does not affect operators who only run trusted, vetted templates.

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 javascript: template AND point the scan at an attacker-controlled MySQL-compatible endpoint, so this is not remote-drive-by against a listening service but rather a sandbox-escape that betrays the operator's assumption that -allow-local-file-access (disabled by default) protects them. Impact is confidentiality-only (C:H, arbitrary local file read via LOAD DATA LOCAL INFILE); no integrity or availability effect. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active or automated exploitation - this is a latent access-control weakness, not an urgent in-the-wild threat. The CVSS signals are internally consistent (network vector matches the MySQL-client-to-attacker-server data flow; C:H matches file disclosure). Priority is moderate-to-low for most defenders, higher only for those who ingest and execute untrusted community templates in automated pipelines. Note the input Tag 'Authentication Bypass' is inaccurate - there is no authentication here; this is a local-file-access sandbox bypass (CWE-284).

Exploit ScenarioDerived

An attacker publishes a seemingly benign javascript: Nuclei template (which runs unsigned and without the -code flag on 3.0.0-3.9.x) that connects to a MySQL DSN with allowAllFiles=true pointing at a MySQL-compatible server the attacker controls. When a victim runs that template - even with -allow-local-file-access disabled - the malicious server responds to the client's query with LOAD DATA LOCAL INFILE requests for paths like /etc/passwd or credential/config files, and the scanner's MySQL client dutifully reads them and streams the contents back to the attacker's server. No public exploit code was identified at time of analysis, and success requires the victim to actively execute the untrusted template (AC:H, UI:R).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nuclei 3.0.0, < 3.10.0

Affected Packages

go github.com/projectdiscovery/nuclei no fix
go github.com/projectdiscovery/nuclei/v2 no fix
go github.com/projectdiscovery/nuclei/v3 fix: 3.10.0
euvd nuclei_3_0_0 fix: 3.10.0

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

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Sep 22, 2026 - 18:02 EUVD

DescriptionCVE.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

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Medium
Nuclei is a very popular open-source security scanner, common in security/CI pipelines but not everywhere
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy