CVE-2026-89259
moderateHugo sandbox bypass via TailwindCSS lets build-time Node tools read/write outside project
Starting in Hugo v0.161.0, Node tools executed during builds run under Node's permission model, but the default security.exec.allow list includes tailwindcss, which requires a highly permissive configuration (--allow-addons, --allow-child-process, --allow-worker). This allows the restrictions introduced by the fix for GHSA-x597-9fr4-5857 to be bypassed, so a Node tool invoked during a build can read and write files outside the project's working directory. An attacker who can influence a build (for example, through untrusted content processed by TailwindCSS or a compromised Node tool/dependency) gains unauthorized read and write access to files beyond the project directory on the build machine. Hugo versions after v0.43 but before v0.165.0 are affected, and users who do not use TailwindCSS or who only build trusted sites are not affected. No public proof-of-concept or confirmed in-the-wild exploitation has been reported, and the issue is not in CISA KEV.
What to do: Upgrade to Hugo v0.165.0 or later, which removes tailwindcss from the default security.exec.allow list; as a workaround, define a restrictive security.exec.allow list in hugo.toml. Operators should check whether any build pipelines on v0.161.0 or later invoke TailwindCSS or other Node tools on untrusted input, noting that sites that do not use TailwindCSS or only build trusted content are not affected.
| gohugo.io (Hugo project) Hugo static site generator | versions after v0.43 and before v0.165.0 (the Node permission-model behavior is introduced in v0.161.0); fixed in v0.165.0 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Hugo is a static site generator. From v0.161.0, Hugo executes Node tools under Node's permission model, but TailwindCSS — included in the default security.exec.allow list — requires a highly permissive configuration (--allow-addons, --allow-child-process, --allow-worker). As a result, the restrictions intended by the fix for GHSA-x597-9fr4-5857 could still be bypassed, allowing a Node tool invoked during a build to read and write files outside the project's working directory. Affected versions are those after v0.43; the issue was fixed in v0.165.0 by removing tailwindcss from the default security.exec.allow list. Users who do not use TailwindCSS, or who only build trusted sites, are not affected. As a workaround, users can define a restrictive security.exec.allow list in hugo.toml.
- Weakness
- CWE-250
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.