| Gói / sản phẩm | Phiên bản bị ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| gov.nsa.emissary:emissary | < 8.39.0 | 8.39.0 |
| emissary | ≤ 8.38.0 |
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.
nav.mustache (line 10){{#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.
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.
navItems
configurationFixed in PR #1293, merged into release 8.39.0.
NavAction.javaAn allowlist regex was added that only permits http://, https://, or
site-relative (/) URLs:
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.
Bạn đang dùng một trong các sản phẩm này? Quét site để biết có đang lộ phiên bản có lỗ hổng không.
Quét site miễn phínav.mustacheAdded rel="noopener noreferrer" to all navigation link anchor tags as a
defense-in-depth measure:
<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.
If upgrading is not immediately possible, audit the navigation configuration
to ensure all navItems link values use only http://, https://, or
relative (/) URL schemes.