CVE-2026-89259: Hugo before v0.165.0 Insufficient Permission Restriction via TailwindCSS

Published Sep 11, 2026
·
Updated

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.

Affected Software

1 affected component
Hugo Hugo<0.165.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Hugo to a version that resolves this vulnerability.

    Fixed in v0.165.0Patch GHSA-x597-9fr4-5857
  2. Configuration

    In hugo.toml, define a restrictive security.exec.allow list (via the hugo.toml setting security.exec.allow) as a workaround for versions affected prior to v0.165.0; ensure required Node tools are explicitly allowed and unnecessary tools (notably TailwindCSS) are not included.

    Hugo security.exec.allow (in hugo.toml) = Define a restrictive security.exec.allow list that does not include tailwindcss (or other Node tools not required) to prevent bypass of exec restrictions.

Event History

Sep 11, 2026
CVE Published
via MITRE·11:15 AM
Data Sourced
via MITRE·11:15 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Hugo versions after v0.43 and before v0.165.0 are affected when they use TailwindCSS and build untrusted sites. Users who do not use TailwindCSS, or who build only trusted sites, are not affected.

2

What does an attacker need to exploit the issue?

An attacker needs a Node tool to be invoked through TailwindCSS during a build of an untrusted site. The permissive Node permissions required by TailwindCSS can then allow reads and writes outside the project working directory.

3

Are default Hugo settings affected?

Yes. TailwindCSS was included in the default security.exec.allow list, and its required Node permissions were sufficiently broad to bypass the intended restrictions.

4

What can be done if upgrading to v0.165.0 is not immediately possible?

Define a restrictive security.exec.allow list in hugo.toml. This prevents relying on the default allow list that includes TailwindCSS.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203