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

CVE-2025-53840

CVE-2025-53840 Supply Chain Attack in Icinga
📅 PUBLISHED: 2025-07-16 13:34 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ 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.5× 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
2.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-53840 is a low-severity authorization bypass vulnerability in Icinga DB Web, a graphical interface for Icinga monitoring. The flaw allows authenticated users with access to Dependency Views to see hosts and services that should be restricted by the filter/hosts and filter/services policies. While the names of restricted objects are not revealed, and full detail views are not accessible, the exposure of object existence on the dependency map violates intended access controls. The vulnerability affects versions 1.2.0 and 1.2.1, with version 1.2.2 applying the proper restrictions. The EPSS score is 0.0%, indicating a very low probability of exploitation in the wild. No public proof-of-concept or 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) and does not involve a supply chain component. The affected component is a PHP-based web application distributed as part of the Icinga ecosystem.

CVSS Breakdown & Threat Level

  • CVSS Score: 2.4 (Low)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (authenticated user with access to Dependency Views)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: Low (existence of objects revealed)
  • Integrity Impact: None
  • Availability Impact: None

Threat Level: Low. The vulnerability requires authenticated access and only exposes the existence of restricted objects without revealing names or details. The EPSS score of 0.0% confirms minimal exploitation risk.

Deep Dive & Mechanics

The vulnerability resides in the Icinga DB Web module responsible for rendering dependency maps. In versions 1.2.0 and 1.2.1, the authorization checks for filter/hosts and filter/services are not applied when generating the dependency graph. This allows users who are restricted from viewing certain hosts or services to still see them as nodes on the dependency map.

The root cause is a missing or incomplete filter enforcement in the dependency map rendering logic. The filter/objects restriction works correctly, but the more granular filter/hosts and filter/services restrictions are bypassed. The dependency map is built by querying the Icinga DB for relationships between objects, and the authorization check is not performed on the results before rendering.

The fix in version 1.2.2 applies the same filtering logic used for filter/objects to the filter/hosts and filter/services restrictions, ensuring that restricted objects are not included in the dependency map data.

Vulnerable vs. Patched Code

The vulnerable code is in the dependency map data provider. The following is a conceptual representation of the vulnerable and patched logic.

Vulnerable Code (v1.2.0 - v1.2.1):

// In DependencyMapProvider.php
public function getDependencyData($userId) {
    $restrictions = $this->getRestrictions($userId);
    // Only applies filter/objects restriction
    $objectFilter = $restrictions['filter/objects'] ?? null;
    $query = $this->db->select()->from('icinga_dependency');
    if ($objectFilter) {
        $query->where($objectFilter);
    }
    // Missing: apply filter/hosts and filter/services
    return $query->fetchAll();
}

Patched Code (v1.2.2):

// In DependencyMapProvider.php
public function getDependencyData($userId) {
    $restrictions = $this->getRestrictions($userId);
    $objectFilter = $restrictions['filter/objects'] ?? null;
    $hostFilter = $restrictions['filter/hosts'] ?? null;
    $serviceFilter = $restrictions['filter/services'] ?? null;
    $query = $this->db->select()->from('icinga_dependency');
    if ($objectFilter) {
        $query->where($objectFilter);
    }
    if ($hostFilter) {
        $query->where($hostFilter);
    }
    if ($serviceFilter) {
        $query->where($serviceFilter);
    }
    return $query->fetchAll();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to an Icinga DB Web instance (version 1.2.0 or 1.2.1)
  • Valid user credentials with access to Dependency Views
  • The user must have restrictions applied via filter/hosts or filter/services

Exploitation Steps:

  1. Log in to Icinga DB Web as a restricted user.
  2. Navigate to the Dependency Views section (e.g., /icingadb-web/dependency/map).
  3. Observe that the dependency map displays hosts and services that should be hidden by the user's restrictions.
  4. The user can see the existence of these objects on the map but cannot click through to their detail views.

Proof of Concept:

# No public PoC available. The exploitation is manual and requires a browser.
# Steps:
# 1. Authenticate as a user with filter/hosts restriction.
# 2. Access the dependency map URL.
# 3. Observe unauthorized objects on the map.

Blue Team

Detection:

  • Monitor access logs for unusual patterns in dependency map requests.
  • Look for users accessing the dependency map who have restrictive filters applied.
  • Check for discrepancies between the objects visible in the dependency map and the objects the user is authorized to see.

Hunting:

-- Query Icinga DB for users with filter/hosts or filter/services restrictions
SELECT username, restriction_type, restriction_value
FROM icinga_user_restriction
WHERE restriction_type IN ('filter/hosts', 'filter/services');

Lab Setup:

  1. Deploy Icinga DB Web version 1.2.0 or 1.2.1.
  2. Create a user with a restriction on filter/hosts (e.g., host_name=secret-server).
  3. Create a host named secret-server and another host.
  4. Create a dependency between the two hosts.
  5. Log in as the restricted user and navigate to the dependency map.
  6. Verify that secret-server is visible on the map despite the restriction.

Indicators of Compromise (IOCs)

  • Log Entries: Access logs showing requests to /icingadb-web/dependency/map from users with restrictive filters.
  • Network Traffic: No specific network IOCs; the vulnerability is exploited through normal web traffic.
  • File System: No file modifications; the vulnerability is in the application logic.
  • Database: No database changes; the vulnerability is in the query logic.

Detection Engineering

YARA Rule

rule CVE_2025_53840_Icinga_DB_Web_Auth_Bypass {
    meta:
        description = "Detects vulnerable Icinga DB Web versions based on file hash"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-53840"
        severity = "low"
    strings:
        $vulnerable_code = "filter/objects" ascii wide nocase
        $missing_filter = "filter/hosts" ascii wide nocase
    condition:
        $vulnerable_code and not $missing_filter
}

Sigma Rule

title: Icinga DB Web Dependency Map Access by Restricted User
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects access to the dependency map by users with filter/hosts or filter/services restrictions
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: icinga_db_web
detection:
    selection:
        http.url|contains: "/dependency/map"
        user.restrictions|contains: "filter/hosts"
    condition: selection
falsepositives:
    - Legitimate access by users with broad restrictions
level: low

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-53840 Icinga DB Web Dependency Map Access";
    flow:to_server,established;
    content:"/dependency/map"; http_uri;
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Icinga DB Web to version 1.2.2 or later.
  2. If upgrade is not possible, downgrade to version 1.1.3 as a workaround.

Long-term Mitigations:

  • Implement additional access control reviews for all Icinga DB Web modules.
  • Regularly audit user restrictions and permissions.
  • Monitor for any unauthorized access attempts to dependency views.

Patch Details:

  • Upgrade to version 1.2.2 from the official Icinga repository.
  • The patch applies proper filtering for filter/hosts and filter/services in the dependency map data provider.

Valters IT Signature This report was generated by Valters IT DevSecOps AI Assistant.

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