CVE-2026-100174: Stored Cross-Site Scripting (XSS) in AIL Framework Tag Selector via Unescaped Tag Names

Published Sep 25, 2026
·
Updated

The AIL Framework tag selector component (var/www/static/js/tags.js) is vulnerable to stored cross-site scripting (XSS). A user with the ability to create a custom tag could embed an HTML payload containing JavaScript event handlers (e.g., <img src=x onerror=alert(1)> or <svg onload=...>) in the tag name. When another authenticated user opened a page containing the tag selector, the malicious tag name was inserted into the DOM using jQuery's html property, causing the embedded script to execute in the victim's browser context.

The vulnerable code paths affected both the suggestion/combo-item rendering (renderComboItems) and the selected-tag rendering logic. In both cases, the display value derived from the tag's displayField was passed directly to the html property of a jQuery element constructor, which parses and inserts the string as raw HTML rather than as text.

Preconditions: the attacker must have an authenticated account with permission to create custom tags, and the victim must be an authenticated user who views a page that renders the tag selector with the attacker's stored tag. The attack is stored (persistent) and does not require the victim to perform any action beyond loading the page.

Security impact: successful exploitation allows arbitrary JavaScript execution in the victim's browser within the application's origin, potentially leading to session hijacking, unauthorized data access, form manipulation, or further client-side attacks.

Affected Software

1 affected component
AIL Framework AIL Framework

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In var/www/static/js/tags.js, render tag names and display values as plain text rather than raw HTML when no custom renderer is configured: use document.createTextNode() for selected-tag rendering and jQuery's .text() method for the default suggestion/combo-item rendering.

  2. Compensating control

    Replace the eval() call in the tag selector with JSON.parse() to eliminate the code-injection vector.

Event History

Sep 25, 2026
CVE Published
via MITRE·01:22 PM
Data Sourced
via MITRE·01:22 PM
RemedyDescriptionWeakness

Frequently Asked Questions

1

Who can exploit this issue, and who is exposed to the payload?

An attacker needs an authenticated account with permission to create custom tags. Authenticated users are exposed when they open a page that renders the tag selector containing the attacker’s stored tag.

2

Does exploitation require the victim to click or otherwise interact with the malicious tag?

No. The payload executes when the victim opens a page that renders the affected tag selector; no additional victim action is required.

3

Are both tag suggestions and already selected tags affected?

Yes. The vulnerable rendering occurs in both the suggestion/combo-item path (_renderComboItems) and the selected-tag rendering logic, where the tag display value is inserted as raw HTML.

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