Skip to main content

AIL Framework EUVDEUVD-2026-87089

| CVE-2026-100176 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-09-25 CIRCL GHSA-gr26-vj67-v262
8.5
CVSS 4.0 · Vendor: CIRCL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Plant crafted username in crawled chat/forum
  2. Delivery
    AIL imports and stores username unsanitized
  3. Exploit
    Analyst opens username timeline view
  4. Install
    Analyst hovers over malicious entry
  5. C2
    D3 html() renders payload in tooltip
  6. Execute
    JavaScript executes in analyst session
  7. Impact
    Session hijack / data exfiltration

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires (1) the attacker to seed a malicious username into a source that AIL crawls (a monitored chat or forum), which needs no authentication to AIL itself; and (2) a victim who is an authenticated analyst with access to the username timeline view AND who actively hovers over the crafted timeline entry to trigger the D3 html() tooltip. The specific vulnerable component is the client-side file var/www/static/js/d3/timeline_basic.js, where d.obj is interpolated into an HTML string without sanitization. Limiting factors: mandatory user interaction (hover), the victim must have analyst access to the timeline feature, and only unpatched versions predating commit 455dd92c are affected - the fix wraps the value in sanitize_text().

Impact

This is a stored/DOM-based XSS (CWE-79) in the AIL Framework's username timeline, confirmed by CIRCL (the vendor/reporter) with a patch already available (commit 455dd92c). The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N) rates it 8.5, but the score is tempered by UI:A - successful execution requires an authenticated analyst to actively hover over the malicious timeline entry. Injection itself needs no authentication (attacker simply plants a crafted username in a chat/forum that AIL crawls), which supports PR:N. There is NO EPSS score, NO CISA KEV listing, and NO public POC available in the provided data, so this is best characterized as 'no public exploit identified at time of analysis' rather than an actively exploited threat. The high VI:H (integrity) rating in the vendor vector is somewhat generous for an XSS whose primary demonstrated impact is script execution in the analyst's session; real impact is more credibly session hijacking and data exfiltration (confidentiality-leaning). Net: a legitimate but not urgent priority - a genuine analyst-session compromise vector, mitigated by the required hover interaction, niche product footprint, and absence of any exploitation signal. Patch and single-line sanitization fix make remediation trivial.

Exploit ScenarioDerived

An attacker posts a message on a forum or chat channel that AIL crawls, using a username containing an HTML payload such as '<img src=x onerror=alert(1)>'. AIL imports and stores the username verbatim; later, an authenticated analyst opens the username timeline and hovers over that entry, causing D3's html() tooltip to render the payload and execute JavaScript in the analyst's authenticated session (enabling session hijacking or data exfiltration). No public exploit code is identified, though the trivial single-line payload lowers the bar for reproduction.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Stored cross-site scripting in the AIL Framework's username timeline lets a remote, unauthenticated attacker execute arbitrary JavaScript in an authenticated analyst's browser by seeding a crafted username - for example an <img> tag with an onerror handler - into a chat or forum that AIL monitors. The malicious username is stored without character restrictions and fires when the analyst hovers over the corresponding timeline entry, because var/www/static/js/d3/timeline_basic.js interpolates the value d.obj directly into D3's html() tooltip without sanitization. CIRCL reports the issue and an upstream fix commit (455dd92c) is available; no public exploit and no CISA KEV entry were identified at time of analysis, and successful exploitation can lead to session hijacking, data exfiltration, or unauthorized actions taken within the analyst's authenticated session.

RemediationAI

The primary fix is to apply upstream commit 455dd92c (https://github.com/ail-project/ail-framework/commit/455dd92c4179c53204368d93681ded4b57e31643), which wraps the username value in sanitize_text() before it is passed to D3's html() in var/www/static/js/d3/timeline_basic.js; per the available data this is an upstream fix available via commit and a released, tagged patched version is not independently confirmed, so administrators pulling from source should verify the commit hash is present and rebuild/redeploy the static assets and clear browser caches so the corrected JavaScript is served. Patch status is therefore best described as upstream fix available (commit); released patched version not independently confirmed. Where immediate upgrading is not possible, compensating controls include never exposing the username timeline to untrusted networks, restricting timeline access to the smallest set of trusted analysts and requiring re-authentication or short session lifetimes to limit session-hijacking value, deploying a Content-Security-Policy that forbids inline script and inline event handlers (which blocks the onerror-style payload but can break legitimate inline UI code and must be tested against the dashboard), and sanitizing or escaping usernames at ingestion in the AIL feed pipeline so stored values never contain markup - this last option trades storage-layer cleanliness for the need to reprocess already-stored malicious usernames, which otherwise remain active until the code fix is deployed.

Affected VersionsENISA

ail framework unspecified <7.1

Affected Packages

euvd ail_framework_unspecified fix: 7.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This is a stored (persistent) cross-site scripting issue, class CWE-79, in the AIL Framework's client-side timeline rendering code. AIL ingests usernames from monitored chats and crawled forums and persists them without applying character restrictions, so attacker-controlled markup survives into the datastore. When an analyst opens the username timeline, the vulnerable file var/www/static/js/d3/timeline_basic.js builds a tooltip with D3's html() method, which injects its argument as live HTML rather than as text: the string ${d.obj}<br>... places the raw username (d.obj) ahead of the formatted start/end timestamps. Because no escaping or sanitization is applied at that point, any HTML event handler embedded in a username is parsed and executed by the victim's browser on hover. The vendor's fix wraps the username in a sanitize_text() call before it reaches html(), converting the value into an inert string. The CPE string cpe:2.3:a:ail_project:ail_framework:*:*:*:*:*:*:*:* indicates the defect is tracked against the AIL Framework product line generally, with only builds predating commit 455dd92c affected.

Know when Ail Framework gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CIRCL) PRIMARY 8.5 HIGH
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
vuln.today AI 8.2 HIGH

Injection is unauthenticated via crawled sources (PR:N), but script execution requires the analyst to hover (UI:R); XSS crosses into the browser (S:C) with session-hijack confidentiality impact (C:H) and limited integrity (I:L).

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CIRCL).

CVSS VectorVendor: CIRCL

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

A stored cross-site scripting flaw in the AIL Framework, an open-source threat-intelligence platform used to collect and correlate data from monitored chats and forums, allows malicious content seeded by an external party to execute in the browsers of authenticated analysts. Because the payload fires inside an analyst's logged-in session, a successful attack could enable session hijacking, exfiltration of collected intelligence, or unauthorized actions performed under the analyst's identity. No public exploit code or confirmed active exploitation was identified at time of analysis, and an upstream fix is available, so the primary risk is exposure of sensitive investigative data if remediation is delayed.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 73% exploitable
Prevalence
Low
niche open-source CTI analysis framework used by security teams
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-39416 HIGH
8.5 Apr 08

Stored cross-site scripting in AIL Framework <6.8 allows authenticated high-privilege attackers to inject malicious Java

CVE-2026-100172 HIGH
8.5 Sep 25

Stored cross-site scripting in AIL Framework allows an authenticated attacker who can influence matched, tracked, or tag

CVE-2026-56448 HIGH
8.3 Jun 22

Authenticated path traversal in AIL Framework (CIRCL's Analysis Information Leak threat-intel platform) lets a low-privi

CVE-2020-8545 HIGH
7.5 Feb 03

Global.py in AIL framework 2.8 allows path traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely exp

CVE-2026-59510 HIGH
7.1 Jul 05

Path traversal in AIL Framework's PDF object handling lets an authenticated user read files outside the intended PDF sto

CVE-2026-76164 HIGH
7.1 Aug 19

Non-blind SSRF in AIL Framework's crawler submission interface allows low-privileged authenticated users to pivot throug

CVE-2026-100187 MEDIUM
6.9 Sep 25

Crafted URL injection in the Onion module of the AIL Framework lets unauthenticated content publishers push arbitrary no

CVE-2026-100190 MEDIUM
6.3 Sep 25

Stored cross-site scripting (XSS) in the AIL Framework crawler splash domain page allows an authenticated user-role API

CVE-2026-100177 MEDIUM
6.3 Sep 25

Cross-tenant authorization bypass in the AIL Framework crawler task API (api_add_crawler_task) lets an authenticated use

CVE-2026-56138 MEDIUM
5.3 Jun 19

Path traversal in AIL Framework's `/objects/item/diff` endpoint exposes gzip-compressed server-side files to authenticat

CVE-2026-100174 MEDIUM
5.1 Sep 25

Stored cross-site scripting (XSS) in the AIL Framework tag selector (var/www/static/js/tags.js) allows an authenticated

CVE-2026-56450 MEDIUM
5.1 Jun 22

Unlimited OTP brute-force against AIL Framework's two-factor authentication endpoint allows an attacker who already poss

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy