GitHub Advisoryadvisory · npm

GHSA-7hvx-28gp-mf6j Unleash: CR-approval email renders user-controlled raw HTML

LOW Published 2026-09-22 Modified 2026-09-22 Official page ↗
Aliases
CVE-2026-76909
Ecosystem
npm
Packages
unleash-server
Severity
Low
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Weaknesses
CWE-79
Reviewed
2026-09-22

Affected packages

• npm unleash-server: < 8.0.3 → fixed in 8.0.3

Description

Summary The change-request approval HTML email template renders fields as raw HTML. User who can create a change request can inject HTML into approval notification emails. I was not able to confirm Enterprise platform is using vulnerable code nor that it doesn't sanitize input. Details `src/mailtemplates/requested-cr-approval/requested-cr-approval.html.mustache` uses Mustache triple-stash syntax for fields that can originate from users: ```mustache {{{ changeRequestTitle }}} {{{ requesterName }}} {{{ requesterEmail }}} {{{ changeRequestLink }}} ``` Triple-stash disables HTML escaping even when Mustache's global escape function is safe. The related renderer is `sendRequestedCRApprovalEmail` in `src/lib/services/email-service.ts`, which renders the template with `Mustache.render`. PoC 1. Use an Enterprise deployment with change requests and approval emails enabled. 2. As a project member who can create change requests, set a display name or change-request title to HTML such as: ```html Approve change request ``` 3. Create a change request that requires approval. 4. Observe that the approval email contains attacker-controlled raw HTML instead of escaped text. Impact Change-request approvers can receive forged links, tracking pixels, or visually altered email content.

Related

Alias · CVE (1)

  • CVE-2026-76909 Unleash is an open-source feature management platform. vulnerability

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References