CVE-2026-49397: Nezha Monitoring Private Service Enumeration Vulnerability
Nezha Monitoring, a self-hosted server and website monitoring tool, has a flaw in versions 2.0.0 through 2.0.13 that allows attackers to discover private services that administrators intended to keep hidden. Specifically, services marked as private (with EnableShowInService set to false) can still be enumerated through per-server API endpoints, exposing their names and response timing information. An attacker with network access to a Nezha instance doesn't need credentials to exploit this—they can systematically query endpoints and infer which services exist and how they behave based on timing patterns. This undermines the intended privacy controls.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Weaknesses (CWE)
- CWE-200, CWE-285, CWE-863
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-12 / 2026-06-17
NVD description (verbatim)
Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. From version 2.0.0 to before version 2.0.14, private services (`EnableShowInService: false`) are enumerable via per-server endpoints, leaking name and timing data. This issue has been patched in version 2.0.14.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from insufficient access controls on per-server service enumeration endpoints. Nezha's service visibility flag (EnableShowInService: false) is meant to prevent private services from appearing in public-facing dashboards and API responses. However, the implementation fails to enforce this restriction consistently across all endpoint types. Attackers can bypass the visibility control by directly querying per-server endpoints, which either list services without respecting the privacy flag or leak service metadata through information channels like response timing. This creates a side-channel information disclosure affecting CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), with contributing factors in CWE-285 (Improper Authorization) and CWE-863 (Incorrect Authorization).
Business impact
For organizations deploying Nezha to monitor mixed public and private infrastructure, this vulnerability compromises the operational security model. Administrators may run private internal services (databases, admin interfaces, development systems) alongside public-facing services, relying on the EnableShowInService flag to prevent exposure. An attacker who discovers these hidden services gains reconnaissance data: service names hint at functionality, and timing measurements can reveal which systems are active and potentially their load or availability state. In multi-tenant or sensitive environments, this information leakage could facilitate targeted attacks, help attackers map internal dependencies, or expose the existence of systems that should remain invisible. Patch compliance is straightforward, making remediation risk relatively low if deployment tracking is in place.
Affected systems
Nezha Monitoring versions 2.0.0 through 2.0.13 are vulnerable. Self-hosted instances of Nezha running these versions with private services configured are at risk. The vulnerability does not require special deployment conditions—any instance with at least one service marked as private (EnableShowInService: false) is potentially affected. Downstream distributions or forks bundling Nezha within those version ranges may also be vulnerable; verify the exact Nezha version included in any monitoring solution that wraps it.
Exploitability
Exploitation is straightforward and requires only network access to the Nezha instance; no authentication is needed. An attacker can enumerate per-server endpoints without credentials, making the attack vector Network with Low attack complexity. The impact is limited to information disclosure—no system compromise, privilege escalation, or service disruption occurs. However, the low barrier to discovery and the informational nature of the leak (service names and timing data) make this a practical reconnaissance technique. Timing-based side channels may require some skill to reliably extract, but basic service enumeration is trivial. The CVSS 3.1 score of 5.3 (Medium) reflects the low attack complexity and lack of authentication requirements, balanced against the informational-only impact.
Remediation
Upgrade Nezha Monitoring to version 2.0.14 or later. This patch closes the enumeration gap by enforcing the EnableShowInService privacy flag on per-server service endpoints. After upgrading, verify that private services no longer appear in or leak from API responses by testing against the enumeration endpoints. No configuration changes should be necessary post-patch; the fix corrects the underlying authorization logic.
Patch guidance
Apply version 2.0.14 or later to all Nezha Monitoring instances. Verify the update through your package manager, container registry, or official Nezha release channels. Test the patch in a staging environment if possible, querying per-server endpoints to confirm that services marked as private are no longer enumerable. Monitor logs after patching for any connection anomalies. Because Nezha is a self-hosted tool, patch deployment depends on your organization's deployment model (containers, binaries, package managers); ensure all instances are updated, including any replicas or backup instances.
Detection guidance
Monitor logs for repeated queries to per-server service endpoints (such as /api/server/{id}/services or similar paths depending on Nezha version) from unauthenticated or unexpected sources. Timing analysis—detecting multiple rapid endpoint requests with varying server IDs—can indicate enumeration activity. Review Nezha configuration files for services with EnableShowInService: false and cross-reference them against recent API request logs to see if they were targeted. Network intrusion detection systems can flag patterns of repeated endpoint scanning. Vulnerability scanning tools targeting Nezha should flag versions below 2.0.14.
Why prioritize this
This is a medium-severity flaw affecting reconnaissance and operational security posture. While it does not enable direct system compromise, it undermines the intended privacy model for sensitive monitoring data. Organizations operating mixed public/private infrastructure and relying on Nezha's visibility controls should prioritize patching. The fix is contained in a single version bump with no apparent breaking changes, making it low-risk to deploy. Patch within your standard maintenance window, prioritizing instances that monitor sensitive or internal systems.
Risk score, explained
CVSS 5.3 (Medium) accurately reflects the risk: the vulnerability is easily exploitable over the network without authentication (AV:N, AC:L, PR:N, UI:N), but the impact is confined to information disclosure with low confidentiality impact (C:L) and no impact on integrity or availability. The lack of authentication and straightforward attack surface push severity upward, while the limited scope and informational-only damage keep it moderate rather than high. Organizations running older versions with private services should treat this as a priority within the medium tier.
Frequently asked questions
Can this vulnerability be exploited remotely without touching the Nezha instance?
Yes. The attacker needs only network access to the Nezha API endpoint (typically HTTP/HTTPS on a port you configure). No credentials, SSH access, or local file manipulation is required. This is a remote information disclosure flaw.
Do I need to reconfigure EnableShowInService settings after patching?
No. The patch corrects the underlying access control logic. Your existing configuration will work as intended once you upgrade to version 2.0.14 or later. Private services will automatically be hidden from enumeration without any manual intervention.
How can I check if an attacker has already enumerated my private services?
Review your Nezha instance logs and any upstream web server/WAF logs for unusual patterns of requests to per-server endpoints. Look for repeated queries with different server IDs or sources that should not have access. If you are running an older version, assume reconnaissance has been possible; patching prevents future enumeration.
Is there a workaround if I cannot patch immediately?
As a temporary measure, restrict network access to your Nezha instance using firewall rules or reverse proxy authentication, limiting API access to trusted internal networks only. This reduces the attack surface while you plan patching. However, patching is the proper fix and should be prioritized.
This analysis is based on the published CVE record and vendor advisory as of June 2026. Verify all patch versions, affected product lists, and remediation guidance against the official Nezha Monitoring GitHub repository and security advisories. This explainer does not constitute security advice; conduct your own risk assessment based on your deployment. No exploit code or weaponized proof-of-concept is provided. This vulnerability does not appear on the CISA KEV catalog as of the analysis date. Source: NVD (public-domain), retrieved 2026-07-20. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10211MEDIUMAstrBot 4.23.6 Path Normalization Authorization Bypass
- CVE-2026-49219MEDIUMImageMagick Policy Bypass via Symlink Path Traversal
- CVE-2026-45490HIGH.NET Authorization Bypass Enables Local Privilege Escalation
- CVE-2026-10070MEDIUMmacrozheng mall Admin Authorization Bypass in /admin/update/
- CVE-2026-10154MEDIUMDolibarr ERP CRM Authorization Bypass in Messaging Module
- CVE-2026-10212MEDIUMAstrBot 4.24.2 Authorization Bypass via Session ID Manipulation
- CVE-2026-10215MEDIUMDolibarr Leave Request API Authorization Bypass
- CVE-2026-10218MEDIUMGoClaw Improper Authorization Vulnerability (CVSS 5.4)