☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-89
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-33178

CVE-2023-33178 — Sensitive Information Disclosure abusing SQL Injection in Xibo CMS dataset filter
📅 PUBLISHED: 2023-05-30 00:00 UTC 🔄 UPDATED: 2026-08-14 07:42 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: Fixed in versions 2.3.17 and 3.3.5; patch confirmed by 2 independent sources (CNA, OSV)
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.63%
👁️
0.63% probability
15.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Affected: >= 1.4.0, < 2.3.17 (2.x branch); >= 1.4.0, < 3.3.5 (3.x branch) — upgrade to patched release
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-33178 is a SQL injection vulnerability in Xibo, an open-source content management system (CMS) used for digital signage. The flaw exists in the /dataset/data/{id} API route and allows an authenticated user to exfiltrate sensitive data from the underlying Xibo database by crafting malicious values in the filter parameter. The vulnerability affects all versions from 1.4.0 through 2.3.16 (2.x branch) and through 3.3.4 (3.x branch). The vendor has released fixed versions 2.3.17 and 3.3.5, and there are no viable workarounds — upgrading is mandatory. Given the CVSS score of 6.5 and the requirement for authentication, this vulnerability is best characterized as a moderate-to-high priority data confidentiality threat for enterprise deployments of Xibo.

⚡ 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

Technical Analysis

The vulnerability resides in the /dataset/data/{id} API endpoint within Xibo CMS. The endpoint accepts a filter parameter that is used to constrain dataset queries. The NVD description indicates that the application attempts to sanitize user input against a blocklist (deny list) of SQL commands that should not be permitted. However, the filtering logic is case-sensitive, meaning an attacker can bypass the deny list simply by using mixed or unusual case combinations in the blocked command keywords.

This class of flaw is a classic SQL injection with inadequate input sanitization (CWE-89). The attack surface is an authenticated API route, meaning the attacker must first have a valid account within the CMS. The injection point is the filter parameter, which is processed server-side as part of a SQL query against the Xibo database. Because the deny list is bypassable, the attacker can inject arbitrary SQL fragments — for example, writing UnIoN SeLeCt instead of UNION SELECT — to manipulate the query's behavior.

The technical mechanism can be summarized as follows:

  1. Input validation gap: The application validates the filter parameter against a deny list of SQL keywords. The check is case-sensitive (strpos-style matching without case normalization).
  2. Query construction: The sanitized (but not actually sanitized) filter value is concatenated into a SQL statement, likely in a WHERE clause.
  3. Injection: An attacker submits a payload using case-mixed SQL keywords that bypass the deny list, allowing the attacker to alter the query structure — for example via UNION SELECT to append additional results, or via subqueries to extract data from other tables.

The affected versions span two major branches: all 1.x versions, all 2.x versions prior to 2.3.17, and all 3.x versions prior to 3.3.5. The impact is unilateral data confidentiality — the attacker can read the contents of the Xibo database, which may contain user credentials (hashed), API keys, configuration data, display device information, and other proprietary content.


Exploitation Scenarios

No public proof-of-concept code is available (POC_STATUS: Unknown), and the attack chain below is inferred strictly from the vulnerability class and the NVD description.

Step 1: Reconnaissance / Target Identification

An attacker first identifies an exposed Xibo CMS instance. This is typically done via internet-wide scanning for Xibo-specific banners, login pages, or default HTTP responses. Xibo CMS often runs on port 80/443 and presents a distinctive login portal. Once identified, the attacker enumerates valid user accounts — either through credential stuffing, default credentials, or social engineering. Authentication is a prerequisite due to the API route being restricted to authenticated users.

Step 2: Triggering the Flaw

The attacker authenticates to the CMS and navigates to the /dataset/data/{id} API endpoint, where {id} corresponds to an accessible dataset ID. The attacker then submits a request that includes a malicious filter parameter. Because the deny list is case-sensitive, the attacker crafts the payload using mixed-case SQL keywords — for example, UnIoN instead of UNION — to evade the blocklist.

Step 3: Payload Execution (Vulnerability-Class Level)

At the class level, the payload is a classic SQL injection that leverages a case-bypass of input filters. The attacker injects a UNION-based or boolean-based blind SQL injection payload into the filter parameter. The server concatenates this value into the SQL query without proper case-insensitive sanitization, and the database executes the attacker-controlled SQL. This permits the attacker to:

  • Extract data from other tables in the database by appending UNION SELECT clauses.
  • Enumerate database schema via information_schema queries.
  • Read authentication hashes, user email addresses, or sensitive configuration data.

Step 4: Post-Exploitation Impact

Once the attacker exfiltrates data, the potential for privilege escalation increases. If user password hashes are retrieved, the attacker may crack them offline and attempt lateral movement. API tokens or administrator credentials could grant full control over the CMS, allowing modification of digital signage content (e.g., displaying malicious messages on screens), further persistence, or pivoting into the underlying server via additional vulnerabilities.


Impact Assessment

The CVSS base score is 6.5 (Medium), with a vector consistent with: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N. This indicates:

  • Attack Vector (AV:N): Network-based — remotely exploitable.
  • Attack Complexity (AC:L): Low — no special conditions required.
  • Privileges Required (PR:L): Low — requires only an authenticated user account.
  • User Interaction (UI:N): None — no user action needed.
  • Scope (S:U): Unchanged — the impact is confined to the database.
  • Confidentiality (C:H): High — full data confidentiality loss.
  • Integrity (I:N): None.
  • Availability (A:N): None.

The EPSS score of 0.00626 (46.9th percentile) suggests that exploit activity in the wild is currently unlikely but not impossible; the score reflects a moderate position in terms of likelihood of exploitation relative to other known CVEs.

Business Impact: Xibo is commonly used in retail, transportation, healthcare, and corporate environments for digital signage. A data exfiltration incident could expose:

  • User credentials and password hashes — enabling credential-based attacks.
  • API keys — granting access to integration points (e.g., third-party feeds, cloud services).
  • Organizational content — proprietary branding assets, emergency procedures.
  • Network topology details — if configuration data reveals internal hostnames or IPs.

Blast Radius: The blast radius is limited to the database contents accessible via the SQL account used by the CMS. However, in misconfigured deployments where the CMS database account has elevated database privileges (e.g., FILE or SUPER), the attacker could potentially escalate to reading server files or achieving remote code execution via INTO OUTFILE-style techniques. This is NOT confirmed for this CVE and remains speculative.


Detection Guidance

Sigma Rule

title: Xibo CMS Dataset Filter SQL Injection Attempt
id: 8a9f2b1e-6c4d-4f0a-9c2e-5d7a1b3e9f21
status: experimental
description: Detects SQL injection attempts against Xibo CMS /dataset/data/{id} endpoint via case-obfuscated SQL keywords in the filter parameter
logsource:
  category: webserver
  product: apache
  service: access_log
detection:
  selection:
    cs-method: 'GET'
    cs-uri-query|contains:
      - '/dataset/data/'
      - 'filter='
    cs-uri-query|contains|all:
      - 'Union'
      - 'Select'
  condition: selection
falsepositives:
  - Legitimate use of the word "union" in a dataset filter (rare)
level: high
tags:
  - attack.t1190
  - cve.2023-33178
  - cwe.89

YARA Rule

rule Xibo_SQLi_Filter_Bypass {
    meta:
        author = "ValtersIT Threat Intel"
        description = "Detects SQL injection payloads targeting Xibo CMS dataset filter with case obfuscation"
        cve = "CVE-2023-33178"
        date = "2024-01-01"
        severity = "high"
    strings:
        $s1 = "/dataset/data/" nocase
        $s2 = "UnIoN" ascii
        $s3 = "SeLeCt" ascii
        $s4 = "filter=1" ascii
        $s5 = "information_schema" ascii
        $s6 = "UniOn" ascii
        $s7 = "SelEct" ascii
    condition:
        any of ($s1, $s4) and (any of ($s2, $s3, $s6, $s7) or all of ($s2, $s3))
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2023-33178 Xibo CMS SQL Injection via dataset filter"; flow:established,to_server; content:"/dataset/data/"; http_uri; content:"filter="; http_uri; pcre:"/[Uu][Nn][Ii][Oo][Nn].*[Ss][Ee][Ll][Ee][Cc][Tt]/i"; reference:cve,2023-33178; sid:10002317; rev:1;)

Elastic Detection (EQL)

sequence by source.ip
  [http where url.path like "/dataset/data/*" and http.request.body like "*filter=*" and http.request.body like "*UnIoN*SeLeCt*"]

Note: Adjust field names (url.path, http.request.body) to match your Elastic ingest pipeline mapping.

Splunk SPL Query

index=web sourcetype=access_combined uri_path="/dataset/data/*"
| regex _raw="filter=.*(?i)(union|select|information_schema)"
| stats count by src_ip, uri, method, status
| where count > 1
| table _time, src_ip, uri, method, status, count

Wazuh OSSEC Rule

<rule id="100231" level="12">
  <decoded_as>json</decoded_as>
  <field name="url">/dataset/data/</field>
  <regex>filter=.*</regex>
  <regex>(?i)(union|select|information_schema)</regex>
  <description>CVE-2023-33178: Xibo CMS SQL injection attempt detected</description>
  <group>web_attack,sqli,</group>
  <mitre>
    <id>T1190</id>
  </mitre>
</rule>

Mitigation & Patch Guidance

Patch Confidence: 3/4 (LIKELY) — Two independent sources (the CNA advisory and OSV) confirm the fix in versions 2.3.17 and 3.3.5.

1. Immediate Mitigations (Before Patching)

  • Restrict API access — Limit access to the /dataset/data/ route to trusted IP ranges via firewall rules or reverse-proxy ACLs.
  • Disable unnecessary user accounts — Review and disable any non-essential authenticated accounts that do not explicitly require dataset access.
  • Monitor access logs — Immediately review access logs for requests to /dataset/data/ containing unusual case patterns in the filter parameter (e.g., UnIoN, SeLeCt).
  • Database account hardening — If possible, ensure the CMS database user account has least-privilege permissions (no FILE, no write access to mysql database).
  • WAF rules — If a WAF is in place, add a custom rule to block filter parameter values containing mixed-case SQL keywords.

2. Patch / Upgrade Steps

  1. Upgrade Xibo CMS to version 2.3.17 (for 2.x deployments) or 3.3.5 (for 3.x deployments).
  2. Review the upgrade notes in the vendor advisory for any schema migrations or additional steps.
  3. Test the upgraded deployment in a staging environment before production rollout.
  4. Verify that the filter parameter is now correctly rejecting case-obfuscated SQL keywords post-upgrade.

3. Long-Term Hardening

  • Apply the principle of least privilege to all database accounts used by the CMS.
  • Keep all CMS instances updated — the vendor explicitly states there are no workarounds; this is a code-level fix.
  • Use network segmentation to isolate the Xibo CMS from sensitive internal network segments.
  • Enable comprehensive logging of all API interactions and integrate with centralized SIEM for real-time alerting.
  • Conduct regular security audits of the CMS configuration, including user account reviews and access log analysis.

References

  1. NVD Entry for CVE-2023-33178 — https://nvd.nist.gov/vuln/detail/CVE-2023-33178
  2. Xibo Official CMS Website & Advisory — https://xibo.org.uk (vendor advisory referenced within CNA; direct advisory URL not provided in data)
  3. OSV.dev Entry for CVE-2023-33178 — https://osv.dev/vulnerability/CVE-2023-33178
  4. MITRE ATT&CK — T1190: Exploit Public-Facing Application — https://attack.mitre.org/techniques/T1190/

Threat Actor Campaigns: No known threat actor campaigns or exploit-in-the-wild evidence are documented for this CVE at the time of writing. The EPSS score (0.00626, 46.9th percentile) indicates low but non-zero exploitation likelihood. This CVE is NOT listed on the CISA Known Exploited Vulnerabilities (KEV) catalog.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Xibo"
http.html:"Xibo CMS"
http.favicon.hash:1347926359
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-33178/ · 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.