Answer in brief
CVE-2026-35571 records a Medium severity (CVSS 4.8) vulnerability in Emissary has Stored XSS via Navigation Template Link Injection. The current sources do not mark it as known exploited. The current feed maps gov.nsa.emissary:emissary (maven). Check affected ranges and fixed versions before updating.
Analysis pending evidence review
HOL Guard separates source facts from reviewed analysis. See the methodology.
CVSS is 4.8. The current sources do not mark it as known exploited. Treat this as a source-backed prioritization signal, not a statement about your environment.
Analysis status
Analysis pending evidence review
Factual feed record only; HOL analysis is not approved for indexing. Read the methodology.
The current feed maps gov.nsa.emissary:emissary (maven). Check affected ranges and fixed versions before updating.
| Product | Affected versions | Fixed versions |
|---|---|---|
| cpe:2.3:a:nsa:emissary:*:*:*:*:*:*:*:* | Not reported | Not reported |
| Package | Affected range | Fixed version |
|---|---|---|
| gov.nsa.emissary:emissarymaven | <=8.38.0 | 8.39.0 |
Published upstream
Apr 7, 2026
Evidence: source:ghsa:source_dates:source-dates:recordSource modified
Nov 4, 2026
Evidence: source:ghsa:source_dates:source-dates:recordFirst seen by HOL
Oct 28, 2026
## Summary Mustache navigation templates interpolated configuration-controlled link values directly into `href` attributes without URL scheme validation. An administrator who could modify the `navItems` configuration could inject `javascript:` URIs, enabling stored cross-site scripting (XSS) against other authenticated users viewing the Emissary web interface. ## Details ### Vulnerable code — `nav.mustache` (line 10) ```html {{#navItems}} <li class="nav-item"> <a class="nav-link" href="{{link}}">{{display}}</a> </li> {{/navItems}} ``` The `{{link}}` value was rendered without any scheme validation. Mustache's default HTML escaping protects against injection of new HTML tags but does **not** prevent `javascript:` URIs in `href` attributes, since `javascript:` contains no characters that HTML-escaping would alter. ### Attack vector An administrator sets a navigation item's link to: ``` javascript:alert(document.cookie) ``` Any authenticated user who clicks the navigation link executes the script in their browser context. ### Impact - Session hijacking via cookie theft - Actions performed on behalf of the victim user - Requires administrative access to modify navigation configuration - Requires user interaction (clicking the malicious link) ### Mitigating factors - Exploitation requires administrative access to modify the `navItems` configuration - User interaction (clicking the link) is required - The Emissary web interface is typically accessed only by authenticated operators within a trusted network ## Remediation Fixed in [PR #1293](https://github.com/NationalSecurityAgency/emissary/pull/1293), merged into release 8.39.0. ### Server-side link validation — `NavAction.java` An allowlist regex was added that only permits `http://`, `https://`, or site-relative (`/`) URLs: ```java private static final Pattern VALID_LINK = Pattern.compile("^(https?:/)?/.*"); private static boolean isValidLink(String link) { if (!VALID_LINK.matcher(link).matches()) { logger.warn("Skipping invalid navigation link '{}'", link); return false; } return true; } ``` Invalid links are logged and silently dropped from the rendered navigation. ### Template hardening — `nav.mustache` Added `rel="noopener noreferrer"` to all navigation link anchor tags as a defense-in-depth measure: ```html <a class="nav-link" href="{{link}}" rel="noopener noreferrer">{{display}}</a> ``` Tests were added to verify that `javascript:` and `ftp://` URIs are rejected while `http://`, `https://`, and site-relative (`/path`) links are accepted. ## Workarounds If upgrading is not immediately possible, audit the navigation configuration to ensure all `navItems` link values use only `http://`, `https://`, or relative (`/`) URL schemes. ## References - [PR #1293 — validate nav links](https://github.com/NationalSecurityAgency/emissary/pull/1293) - Original report: GHSA-wjqm-p579-x3ww
Quoted source text, attributed separately from HOL analysis.