CVE-2026-63466

Unleash: Global Mustache.escape override disables HTML escaping process-wide, enabling Slack/Teams link-injection via unrestricted username

Published Aug 21, 2026 CVSS 3.1 · 4.1 Medium EPSS < 1% KEV · Not listed
Description
Unleash is an open-source feature management platform. Prior to 8.0.3, FeatureEventFormatterMd.format in src/lib/addons/feature-event-formatter-md.ts assigns Mustache.escape to an identity function before rendering action and path templates. Because Mustache.escape is process-wide, the assignment disables escaping for subsequent Mustache.render calls in email-service.ts, webhook.ts, datadog.ts, and new-relic.ts. An editor-level user can place Slack or Microsoft Teams link syntax in an unrestricted username, trigger a feature event, and inject an attacker-labeled link into a trusted outbound notification channel, while other Mustache sinks remain unescaped until restart. This issue is fixed in version 8.0.3.

Analysis

AI-generated

Technical impact

The vulnerability involves the Mustache template engine used by Unleash. Prior to version 8.0.3, the FeatureEventFormatterMd.format function assigns Mustache.escape to an identity function, which disables escaping for all subsequent Mustache.render calls. This manipulation represents CWE-116: Improper Encoding or Escaping because the application globally disables the default escaping function. An editor‑level user can set a username containing Slack or Microsoft Teams link syntax. When a feature event is logged, the unescaped username propagates into email, webhook, Datadog and New Relic notifications, allowing an attacker to inject a malicious link that the receiver assumes is legitimate.

Affected Systems

The affected product is Unleash, the open‑source feature management platform. All releases before 8.0.3 are vulnerable because FeatureEventFormatterMd.format assigns Mustache.escape globally. The impact is especially relevant in instances where notifications are sent to trusted channels such as Slack or Teams, as the injected link appears within an authorized message stream.

Risk and Exploitability

The CVSS score is 4.1, indicating a medium impact. With no EPSS data available, the likelihood of public exploitation appears low, which is consistent with the KEV status of not being listed. The vulnerability requires privileged editor rights; therefore, the attack surface is limited to organizations that grant such access. Exploitability is further reduced by the temporary state of Mustache.escape, which remains disabled until the application is restarted after the exploit.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Unleash version 8.0.3 or later, where the identity assignment to Mustache.escape has been removed.
  • If upgrading is not immediately possible, restart the Unleash service to restore the original Mustache.escape behavior before the vulnerable change takes effect.
  • Restrict editor‑level privileges by auditing account roles and limiting the ability to modify usernames that may contain link syntax, ensuring that only trusted users can create or alter usernames.
  • Implement input validation or sanitization for usernames to enforce escaping of link markers before they reach Mustache rendering layers.

Generated by OpenCVE AI on August 21, 2026 at 19:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-w4mq-xh27-6xpx Unleash: Global Mustache.escape override disables HTML escaping process-wide, enabling Slack/Teams link-injection via unrestricted username
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Unleash
Unleash unleash
Vendors & Products Unleash
Unleash unleash
Type Values Removed Values Added
Description Unleash is an open-source feature management platform. Prior to 8.0.3, FeatureEventFormatterMd.format in src/lib/addons/feature-event-formatter-md.ts assigns Mustache.escape to an identity function before rendering action and path templates. Because Mustache.escape is process-wide, the assignment disables escaping for subsequent Mustache.render calls in email-service.ts, webhook.ts, datadog.ts, and new-relic.ts. An editor-level user can place Slack or Microsoft Teams link syntax in an unrestricted username, trigger a feature event, and inject an attacker-labeled link into a trusted outbound notification channel, while other Mustache sinks remain unescaped until restart. This issue is fixed in version 8.0.3.
Title Unleash: Global Mustache.escape override disables HTML escaping process-wide, enabling Slack/Teams link-injection via unrestricted username
Weaknesses CWE-116
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-116

    Improper Encoding or Escaping of Output

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 21, 2026, 9:43 PM
Reserved
Jul 16, 2026, 9:37 PM
Status
Deferred
Published
Aug 21, 2026, 7:17 PM
Modified
Oct 14, 2026, 7:10 PM