Description
The AIL Framework's username timeline feature is vulnerable to stored cross-site scripting (XSS). Usernames imported from chats and crawled forums are stored without character restrictions. When an authenticated analyst views the username timeline, the application renders these stored usernames into the DOM using D3's html() method in the tooltip. Because the username value (d.obj) is interpolated directly into an HTML string without sanitization, a crafted username containing HTML event handlers (e.g., <img src=x onerror=alert(1)>) will execute arbitrary JavaScript in the analyst's browser when the analyst hovers over the corresponding timeline entry. The attack requires the victim to be an authenticated analyst with access to the timeline view and to interact with the malicious timeline entry (hover). Successful exploitation can lead to session hijacking, data exfiltration, or unauthorized actions performed within the analyst's authenticated session. The vulnerability resides in the client-side JavaScript file var/www/static/js/d3/timeline_basic.js.
Published: 2026-09-25
Score: 8.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Client-side Script Execution
Action: Immediate Patch
AI Analysis

Impact

The AIL Framework stores usernames imported from chats and forums without any character restrictions, allowing an attacker to insert arbitrary HTML and JavaScript. When an authenticated analyst views the timeline, the framework renders these usernames into a tooltip using D3's html() method, injecting the raw value directly into the DOM. Hovering over a malicious entry causes the embedded script to run in the analyst's browser, which can hijack the session, exfiltrate data, or perform unauthorized actions within the analyst's authenticated context. The flaw resides in var/www/static/js/d3/timeline_basic.js and is a classic stored cross‑site scripting vulnerability.

Affected Systems

The issue affects the AIL Framework, as distributed by the ail project. All versions that include the unpatched 'timeline_basic.js' module are vulnerable. No specific version numbers are listed in the CNA data, so apply updates whenever available.

Risk and Exploitability

The vulnerability scores a CVSS of 8.5, indicating high severity. The EPSS score is not available, but the KEV catalog does not list it, meaning there are no publicly known active exploits yet. The attack requires that the victim be an authenticated analyst and that they interact with the malicious timeline entry, making the attack vector a user-interaction with a web page, but it is still considered a high risk due to the potential for complete session compromise.

Generated by OpenCVE AI on September 25, 2026 at 16:41 UTC.

Remediation

Vendor Solution

The fix applies the existing sanitize_text() helper to the user-controlled username value (d.obj) immediately before it is interpolated into the D3 tooltip HTML string. This ensures that any HTML or script content embedded in the stored username is neutralized before DOM insertion, preventing script execution while preserving the tooltip's intended formatting (line breaks and date/time display).


OpenCVE Recommended Actions

  • Apply the vendor’s patch which invokes the sanitize_text() helper on the username before it is interpolated into the tooltip HTML. This ensures any embedded JavaScript is neutralized.
  • Implement input validation for usernames during import; allow only alphanumeric characters or a tight whitelist to prevent HTML from being stored.
  • If a patch cannot be applied immediately, disable the tooltip hover functionality or remove the timeline view for authenticated analysts until the fix is in place.

Generated by OpenCVE AI on September 25, 2026 at 16:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Sat, 26 Sep 2026 12:45:00 +0000

Type Values Removed Values Added
First Time appeared Ail-project
Ail-project ail-framework
Vendors & Products Ail-project
Ail-project ail-framework

Fri, 25 Sep 2026 13:45:00 +0000

Type Values Removed Values Added
Description The AIL Framework's username timeline feature is vulnerable to stored cross-site scripting (XSS). Usernames imported from chats and crawled forums are stored without character restrictions. When an authenticated analyst views the username timeline, the application renders these stored usernames into the DOM using D3's html() method in the tooltip. Because the username value (d.obj) is interpolated directly into an HTML string without sanitization, a crafted username containing HTML event handlers (e.g., <img src=x onerror=alert(1)>) will execute arbitrary JavaScript in the analyst's browser when the analyst hovers over the corresponding timeline entry. The attack requires the victim to be an authenticated analyst with access to the timeline view and to interact with the malicious timeline entry (hover). Successful exploitation can lead to session hijacking, data exfiltration, or unauthorized actions performed within the analyst's authenticated session. The vulnerability resides in the client-side JavaScript file var/www/static/js/d3/timeline_basic.js.
Title Stored Cross-Site Scripting (XSS) in AIL Framework Username Timeline Tooltip
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 8.5, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Ail-project Ail-framework
cve-icon MITRE

Status: PUBLISHED

Assigner: CIRCL

Published:

Updated: 2026-09-25T14:59:28.644Z

Reserved: 2026-09-25T13:29:14.017Z

Link: CVE-2026-100176

cve-icon Vulnrichment

Updated: 2026-09-25T14:57:15.879Z

cve-icon NVD

Status : Deferred

Published: 2026-09-25T14:17:17.020

Modified: 2026-09-25T15:17:52.300

Link: CVE-2026-100176

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T12:30:07Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')