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

CVE-2025-61789

CVE-2025-61789 Information Disclosure in Icinga
📅 PUBLISHED: 2025-10-16 17:00 UTC 🔄 UPDATED: 2026-09-23 20:32 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.36%
👁️
0.36% probability
9.1× 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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-61789 is an information disclosure vulnerability in Icinga DB Web, a graphical interface for Icinga monitoring. An authenticated user with access to the web interface can exploit custom variable filters to guess values of protected or hidden variables. This is a low-severity issue (CVSS 5.3) that allows an attacker to enumerate sensitive configuration data, such as passwords or API keys, stored in custom variables. The vulnerability is patched in versions 1.1.4 and 1.2.3, which return an error when such a custom variable is used in a filter.

⚡ 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 affects the Icinga DB Web package, which is distributed via GitHub and official Icinga repositories. No supply chain compromise has been reported. Users should verify package integrity via checksums provided by Icinga.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.3 (Medium)
  • 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)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: Low (information disclosure)
  • Integrity Impact: None
  • Availability Impact: None

Threat Level: Low. The vulnerability requires authentication and only allows guessing of variable values, not direct reading.

Deep Dive & Mechanics

The vulnerability lies in the filter processing logic of Icinga DB Web. The application allows users to filter monitoring data using custom variables. Icinga DB Web has two mechanisms to protect sensitive variables:

  • icingadb/protect/variables: Variables that are protected from being displayed.
  • icingadb/denylist/variables: Variables that are hidden entirely.

However, before version 1.1.4 and 1.2.3, the filter engine did not properly validate whether a custom variable used in a filter was protected or hidden. An attacker could use a filter like vars.secret_key=* and observe the response. If the filter returns results, the attacker knows the variable exists and can guess its value by iterating through possible values (e.g., vars.secret_key=test123). The application would return different results based on whether the guessed value matches, enabling a blind enumeration attack.

The fix in versions 1.1.4 and 1.2.3 adds a check that returns an error if a custom variable used in a filter is in the protect or denylist.

Vulnerable vs. Patched Code

Vulnerable Code (before 1.1.4 / 1.2.3):

// In filter processing logic
$filter = new Filter($request->getQuery('filter'));
// No check for protected/denylist variables
$results = $this->query->filter($filter)->fetchAll();

Patched Code (1.1.4 / 1.2.3):

// In filter processing logic
$filter = new Filter($request->getQuery('filter'));
// Check for protected/denylist variables
foreach ($filter->getCustomVariables() as $var) {
    if (in_array($var, $this->protectedVariables) || in_array($var, $this->denylistVariables)) {
        throw new \InvalidArgumentException('Filtering by protected or denylist variable is not allowed.');
    }
}
$results = $this->query->filter($filter)->fetchAll();

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to an Icinga DB Web instance (version < 1.1.4 or < 1.2.3)
  • Valid user credentials with access to the web interface

Exploitation Steps:

  1. Log in to Icinga DB Web.
  2. Navigate to a view that supports custom variable filtering (e.g., host or service list).
  3. Use the filter parameter to guess variable names and values. For example:
    • vars.secret_key=* to check if the variable exists.
    • vars.secret_key=test123 to guess a value.
  4. Observe the response: if results are returned, the guess is correct; if no results, the guess is wrong.

Example HTTP Request:

GET /icingadb-web/hosts?filter=vars.secret_key=test123 HTTP/1.1
Host: target.example.com
Cookie: icingaweb2-session=...

Blue Team

Detection:

  • Monitor for unusual filter parameters in Icinga DB Web requests, especially those containing vars. followed by sensitive-sounding names (e.g., password, secret, key).
  • Look for repeated filter requests with different values (brute-force pattern).

Prevention:

  • Upgrade to version 1.1.4 or 1.2.3 immediately.
  • Restrict access to Icinga DB Web to trusted users only.
  • Use network segmentation to limit exposure.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to Icinga DB Web with filter parameters containing vars. and repeated value guessing.
  • Logs: Icinga DB Web access logs showing multiple filter requests with different values for the same variable.
  • System: No file-based IOCs; this is a web application vulnerability.

Detection Engineering

YARA Rule

rule CVE_2025_61789_Icinga_DB_Web_Filter_Enumeration {
    meta:
        description = "Detects attempts to exploit CVE-2025-61789 by filtering on protected/denylist variables"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-61789"
    strings:
        $filter_param = /filter=vars\.\w+=/ nocase
        $error_response = "Filtering by protected or denylist variable is not allowed" nocase
    condition:
        $filter_param or $error_response
}

Sigma Rule

title: CVE-2025-61789 Icinga DB Web Variable Enumeration
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-61789 by filtering on protected/denylist variables
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-61789
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains: "filter=vars."
    condition: selection
falsepositives:
    - Legitimate use of custom variables that are not protected/denylisted
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-61789 Icinga DB Web Variable Enumeration Attempt"; flow:to_server; content:"filter=vars."; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Upgrade Icinga DB Web to version 1.1.4 or 1.2.3.
  • If upgrade is not possible, restrict access to the web interface using firewall rules or VPN.

Long-term:

  • Implement input validation for all filter parameters.
  • Regularly review and update the list of protected/denylist variables.
  • Conduct security audits of web application code.

Workaround:

  • Remove sensitive data from custom variables and use alternative secure storage.

Valters IT
DevSecOps & Cyber Threat Intelligence

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