Skip to main content
Vulnerability Database/CVE-2026-76804

CVE-2026-76804: Nuclei Scanner Information Disclosure Flaw

CVE-2026-76804 is an information disclosure vulnerability in Nuclei scanner that allows untrusted workflows to bypass file access restrictions and read local files. This post covers technical details, affected versions, and mitigation.

Published:

CVE-2026-76804 Overview

CVE-2026-76804 is a broken access control flaw [CWE-284] in Nuclei, the YAML-based vulnerability scanner from ProjectDiscovery. Versions from 3.0.0 through 3.10.0 fail to enforce the -file capability gate when a workflow template references a file: protocol template. An untrusted, unsigned workflow can therefore load a file-protocol template and read arbitrary local files from the scanner host, even when the operator has not opted in to file templates. The issue impacts CLI users running workflows with -w and SDK integrations that accept end-user workflows while relying on the default file-access restriction. ProjectDiscovery addressed the flaw in Nuclei 3.10.0.

Critical Impact

An attacker-supplied workflow can bypass the opt-in file-access gate and exfiltrate sensitive files, including credentials and configuration, from the host running Nuclei.

Affected Products

  • ProjectDiscovery Nuclei versions 3.0.0 through versions prior to 3.10.0
  • Nuclei CLI executions using the -w workflow flag with untrusted workflow input
  • SDK integrations embedding Nuclei that accept end-user workflows and rely on default file-access restrictions

Discovery Timeline

  • 2026-09-22 - CVE-2026-76804 published to NVD
  • 2026-09-22 - Last updated in NVD database

Technical Details for CVE-2026-76804

Vulnerability Analysis

Nuclei gates access to certain sensitive template capabilities behind opt-in command-line flags. The -file flag is required before templates using the file: protocol may read the local filesystem. The vulnerability stems from the workflow template loader failing to consult that capability gate. When a workflow definition references a nested file: protocol template, the loader resolves and executes the referenced template regardless of whether the operator enabled file access.

This converts an unsigned, untrusted workflow into a primitive for reading arbitrary files on the scanner host. Sensitive data such as SSH keys, cloud credentials, environment files, and configuration secrets fall within reach of any user who can supply a workflow. The impact is heightened in SaaS and CI/CD environments where Nuclei runs against third-party inputs.

Root Cause

The workflow template resolution path did not participate in the centralized capability gating that the standalone template runner enforced. The fix, delivered in pull request #7489 and commit 638be44, refactors and centralizes the opt-in capability gates so that workflow-referenced templates honor the same restrictions as directly invoked templates.

Attack Vector

Exploitation requires an operator to execute an attacker-supplied workflow using nuclei -w <workflow.yaml> or to submit that workflow through an SDK integration. User interaction is required. Once loaded, the malicious workflow references a file: protocol template that reads targeted paths on the scanner host and returns their contents through Nuclei match output.

go
// Security patch excerpt: pkg/catalog/disk/find.go
// Source: https://github.com/projectdiscovery/nuclei/commit/638be4481d27f1bbf90f971bbf6e3023777f2089
	if err != nil {
		return "", false, err
	}
+	defer func() {
+		_ = info.Close()
+	}()
	stat, err := info.Stat()
	if err != nil {
		return "", false, err

See also the GitHub Security Advisory GHSA-qgw5-7j4f-fg97 and the centralized capability gate pull request #7489.

Detection Methods for CVE-2026-76804

Indicators of Compromise

  • Nuclei process invocations with -w referencing workflow files sourced from untrusted users or repositories.
  • Nuclei output or logs containing file contents from sensitive paths such as /etc/passwd, ~/.ssh/, ~/.aws/, or /proc/self/environ.
  • Workflow YAML files that declare templates using the file: protocol scheme on hosts where -file was not intentionally enabled.

Detection Strategies

  • Inspect workflow YAML for file: protocol template references and reject any not originating from a trusted, signed source.
  • Baseline the Nuclei binary version across scanning infrastructure and flag any host running a version older than 3.10.0.
  • Correlate Nuclei process launches with subsequent reads of secret-bearing files on the same host within a short time window.

Monitoring Recommendations

  • Enable filesystem auditing (auditd, EDR file-access telemetry) on directories holding credentials and configuration on hosts that run Nuclei.
  • Log full command-line arguments for Nuclei invocations to a central SIEM to identify workflow flag usage and template sources.
  • Alert on Nuclei output artifacts, report files, or stdout streams that contain patterns matching private key headers, cloud credentials, or .env variables.

How to Mitigate CVE-2026-76804

Immediate Actions Required

  • Upgrade Nuclei to version 3.10.0 or later on every host and SDK integration.
  • Stop accepting unsigned, third-party workflows in CLI and SDK deployments until the upgrade is verified.
  • Rotate any credentials, tokens, or keys reachable from hosts that ran vulnerable Nuclei versions with untrusted workflow input.

Patch Information

The fix ships in Nuclei release v3.10.0. The change centralizes opt-in capability gates so that workflow-referenced templates honor -file and related restrictions. Review the remediation commit 638be44 for implementation details.

Workarounds

  • Restrict workflow input to signed, first-party templates by validating template signatures before execution.
  • Run Nuclei under a dedicated, least-privileged service account with no access to secrets, SSH keys, or cloud credential files.
  • Isolate scanner hosts in ephemeral containers or sandboxes so that any file read is limited to non-sensitive scratch data.
bash
# Verify Nuclei is on a fixed version and reject file-protocol workflows
nuclei -version

# Refuse to run any workflow YAML that references file: protocol templates
grep -RIn --include='*.yaml' -E '(^|\s)file:\s*' /path/to/workflows/ \
  && echo 'Blocked: file: protocol template detected in workflow'

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.