Description
Hugo 0.161.0 placed the Node asset pipelines behind the Node.js permission model so that code running through PostCSS, Babel, or TailwindCSS could not reach the file system outside the project directory. Hugo 0.162.0 added tailwindcss to the AllowChildProcess default in config/security/securityConfig.go, which makes nodePermissionArgs in common/hexec/exec.go append --allow-child-process whenever the tool being launched is named tailwindcss. TailwindCSS loads the site's tailwind.config.js through require at startup, so top-level code in that file executes inside the permitted Node process and can call child_process to spawn a shell. The spawned process is not a Node process and inherits none of the permission flags, so it runs with the full privileges of the account performing the build. Building a site whose theme, module, or starter template supplies the Tailwind configuration therefore yields arbitrary command execution rather than the confined file access the permission model was introduced to enforce. Hugo 0.165.0 removes tailwindcss from the default security.exec.allow list, so the tool is no longer launched under the default configuration.
Published: 2026-08-18
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability lies in Hugo's handling of Node-based asset pipelines. Starting with 0.162.0, Hugo automatically grants TailwindCSS the '--allow-child-process' flag when running under its security exec allow list. TailwindCSS loads the site’s tailwind.config.js via require; any top‑level code in that file runs inside the privileged Node process and can spawn arbitrary child processes. The spawned process, not being governed by the Node permission model, inherits full build‑time privileges and can execute shell commands. This turns a confined file‑access restriction into an arbitrary command‑execution capability for malicious Tailwind configurations.

Affected Systems

The affected product is the Hugo static‑site generator from the gohugoio project. Versions 0.162.0 through 0.164.x contain the flaw. Any installation that enables TailwindCSS during the build—such as themes, modules, or starter templates that provide a tailwind.config.js file—is vulnerable. Versions 0.165.0 and later have removed TailwindCSS from the default security.exec.allow list, eliminating the issue.

Risk and Exploitability

The CVSS score of 9.3 denotes high severity. No EPSS data is published, and the vulnerability is not listed in the CISA KEV catalog, suggesting limited public exploitation at this time. Nevertheless, the attack is straightforward for an adversary who can contribute or modify the site's build content: by inserting a malicious tailwind.config.js file, an attacker can cause Hugo to spawn a shell with full build‑user privileges, providing remote code execution without further privilege escalation or network connectivity.

Generated by OpenCVE AI on August 18, 2026 at 19:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Hugo to version 0.165.0 or later, which removes TailwindCSS from the default security.exec.allow list.
  • If an upgrade is not immediately possible, edit the Hugo security configuration to delete TailwindCSS from the AllowChildProcess default list so that the Tailwind binary runs without the allow‑child‑process flag.
  • Validate and sanitize any themes or modules that provide a tailwind.config.js file to prevent inclusion of malicious code.

Generated by OpenCVE AI on August 18, 2026 at 19:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 18 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description Hugo 0.161.0 placed the Node asset pipelines behind the Node.js permission model so that code running through PostCSS, Babel, or TailwindCSS could not reach the file system outside the project directory. Hugo 0.162.0 added tailwindcss to the AllowChildProcess default in config/security/securityConfig.go, which makes nodePermissionArgs in common/hexec/exec.go append --allow-child-process whenever the tool being launched is named tailwindcss. TailwindCSS loads the site's tailwind.config.js through require at startup, so top-level code in that file executes inside the permitted Node process and can call child_process to spawn a shell. The spawned process is not a Node process and inherits none of the permission flags, so it runs with the full privileges of the account performing the build. Building a site whose theme, module, or starter template supplies the Tailwind configuration therefore yields arbitrary command execution rather than the confined file access the permission model was introduced to enforce. Hugo 0.165.0 removes tailwindcss from the default security.exec.allow list, so the tool is no longer launched under the default configuration.
Title Hugo 0.162.0 to 0.164.x - Node Permission Model Bypass via Default TailwindCSS Child-Process Grant
First Time appeared Gohugo
Gohugo hugo
Weaknesses CWE-1188
CPEs cpe:2.3:a:gohugo:hugo:*:*:*:*:*:*:*:*
Vendors & Products Gohugo
Gohugo hugo
References
Metrics cvssV3_1

{'score': 8.6, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-20T03:55:58.115Z

Reserved: 2026-08-18T15:36:16.466Z

Link: CVE-2026-75926

cve-icon Vulnrichment

Updated: 2026-08-18T19:04:58.001Z

cve-icon NVD

Status : Received

Published: 2026-08-18T16:18:24.443

Modified: 2026-08-20T04:17:09.483

Link: CVE-2026-75926

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T20:45:04Z

Weaknesses
  • CWE-1188

    Initialization of a Resource with an Insecure Default