Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with nezha:service:write scope
-
DeliveryCraft service monitor with privileged Task.Type (Command/Exec/ApplyConfig)
-
ExploitSubmit via service API
-
ExecutionDashboard dispatches task to in-scope Agents
-
PersistAgent executes command / applies config
-
ImpactRemote code execution on monitored hosts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Nezha Dashboard account (before v2.3.5) holding the nezha:service:write scope; no user interaction and no admin rights are needed. Exploitation is bounded by the attacker's existing authorization scope - privileged Command/ApplyConfig/Exec tasks can only be delivered to Agents the attacker is already authorized over, so a single-user or tightly-scoped deployment sharply limits blast radius, while a multi-tenant instance that hands service:write to low-trust users is fully exposed. The limiting factor is the pre-existing authenticated, scoped account; the enabling condition is the unvalidated Task.Type accepted by the service API sharing the protobuf integer namespace with privileged operations. |
| Impact | This is a genuine privilege-escalation issue (CWE-269) rather than a high-CVSS-but-hollow finding, but its real-world urgency is moderate and gated by authentication. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, score 7.1) confirms network reachability, low complexity, and NO required user interaction, but PR:L means the attacker must already hold an authenticated account carrying the nezha:service:write scope - this is not an unauthenticated internet-facing bug. The vendor scored only VC:H with VI:N/VA:N, which UNDERSTATES the impact: the flaw lets an attacker deliver command-execution and Agent-configuration tasks to Agents, which is by definition integrity- and availability-affecting (arbitrary code execution on monitored hosts), so my independent assessment raises Integrity and Availability and treats the compromised Agents as a scope change. No EPSS score, no CISA KEV listing, and no public POC were provided, so exploitation status is 'no public exploit identified at time of analysis' - this argues against imminent mass exploitation, but the root cause (a shared protobuf Task.Type integer namespace between benign service monitors and privileged Command/ApplyConfig/Exec tasks) is conceptually simple and clearly documented in the patch/tests, lowering the bar for a motivated authenticated insider. Net: a real priority for multi-tenant Nezha deployments where low-privilege users hold service:write, and a lower priority for single-operator/self-hosted single-user instances. |
| Exploit ScenarioDerived | A low-privilege authenticated Nezha user who holds the nezha:service:write scope creates or updates a 'service monitor' via the service API but sets its Task.Type to a privileged value (Command, ApplyConfig, or Exec) instead of a supported probe type such as TCPPing. The dashboard dispatches the crafted task to Agents within the user's authorization scope, executing arbitrary commands or pushing malicious Agent configuration. No public exploit code was identified at time of analysis, though the fix commit ships security tests that concretely demonstrate the rejected task-type values. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
Authenticated privilege escalation in Nezha Dashboard before 2.3.5 lets any account holding the nezha:service:write scope escalate into privileged Agent operations by creating or updating a service monitor whose Task.Type is set to a command or configuration task value, since the service API never validated that the submitted type belonged to the supported probe set. Because service monitors and privileged operations share the same protobuf Task.Type integer namespace, the crafted task is accepted and dispatched to Agents within the attacker's existing authorization scope, resulting in command execution or Agent reconfiguration (CWE-269). The independent assessment rates this as a genuine but authentication-gated privilege-escalation issue whose urgency is moderate and whose blast radius scales with how broadly service:write is delegated; the vendor has released a fix in 2.3.5 (commit 38824dbc11a63964c5b9296ae4c68e62b34fa04b) and no public exploit has been identified at time of analysis.
RemediationAI
Upgrade every Nezha Dashboard instance to 2.3.5 or later; the vendor-released patch is the commit 38824dbc11a63964c5b9296ae4c68e62b34fa04b, which adds model.ValidateServiceMonitorType checks in createService and updateService and a defence-in-depth check in DispatchTask, and is documented in advisory GHSA-grrw-fx36-fv32. Where immediate upgrade is not possible, treat the exposure as an authorization-hygiene problem: revoke or tightly scope nezha:service:write so that only fully trusted operators can create or modify service monitors, since the entire exploit path is gated on a pre-existing authenticated account with that scope; audit existing Service rows for Type values that are not supported probe types (Command, ApplyConfig, Exec, or out-of-range integers) as these may be artefacts of past abuse, and note that after patching DispatchTask will simply log and drop such rows rather than executing them, so those monitors will silently stop working until corrected. Additional hardening consistent with the advisory: restrict Dashboard/API reachability to trusted networks or a reverse proxy that enforces authentication, and enable Agent-side egress restrictions so Agents can only reach the Dashboard and the endpoints they legitimately need. No public exploit code has been identified at time of analysis, so prioritisation should follow the 2.3.5 upgrade timeline rather than emergency patching, except in multi-tenant deployments that hand service:write to low-trust users, where the blast radius is effectively full command execution over the attacker's authorized Agents.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nezha is a Go-based server and service monitoring system composed of a Dashboard (control plane) and Agents that connect back to it; control messages between the two are serialised as protobuf tasks carrying an integer Task.Type field. That single integer namespace is shared across semantically very different operations: benign service-monitor probes (for example TaskTypeTCPPing, HTTP, ICMP) and privileged administrative operations (TaskTypeCommand, TaskTypeApplyConfig, TaskTypeExec). The service-monitor API (POST /api/v1/service and PATCH /api/v1/service/:id) previously persisted whatever Type value the caller supplied and then passed it to DispatchTask, which forwards the task to the Agents covered by the service. The root cause class is CWE-269 (Improper Privilege Management): a lower-privileged write scope (nezha:service:write) was able to select a task type that carries higher-privileged semantics, effectively letting a monitor definition masquerade as a remote command or configuration application. The vendor fix introduces model.ValidateServiceMonitorType and enforces it at createService (cmd/dashboard/controller/service.go), updateService, and as defence-in-depth inside DispatchTask (cmd/dashboard/rpc/service_dispatch.go) so that stale database rows or future internal callers cannot re-introduce the shared-namespace confusion. Affected products are tracked by the wildcard CPE cpe:2.3:a:nezhahq:nezha:*:*:*:*:*:*:*:*, i.e. all Nezha Dashboard builds prior to 2.3.5 that resolve to the vulnerable version range.
Know when Nezha gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated scoped user (PR:L) triggers command execution on separate Agent hosts, a scope change (S:C) yielding full C/I/A compromise of those Agents.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Nezha Dashboard versions before 2.3.5 fail to restrict service monitor task types to supported probe types, allowing authenticated users with nezha:service:write scope to submit privileged task types through the service API. Attackers can deliver command execution or Agent configuration tasks to Agents within their authorization scope by exploiting the shared protobuf Task.Type namespace between service monitors and privileged operations.
Technical POC Analysis
CWE-269 (Improper Privilege Management), with the advisory also citing CWE-863 (Incorrect Authorization).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Nezha Dashboard deployments running versions before 2.3.5 contain a privilege-escalation flaw that lets an account already holding the nezha:service:write scope issue command and configuration tasks to managed Agents, crossing from routine service monitoring into control-plane operations. Because the flaw routes a crafted service monitor into the same task channel used for Agent command execution and reconfiguration, the real blast radius depends on how widely that write scope has been delegated across teams, tokens, and automation. Leadership should care most where service:write has been granted beyond a small trusted group, since unauthorized commands or Agent reconfiguration could then spread across the monitored fleet.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re
Unauthenticated path traversal in Nezha Monitoring (nezhahq/nezha) before 2.0.13 allows remote attackers to read arbitra
Cross-tenant session hijacking in Nezha Monitoring (v1.14.13-1.14.14 and v2.0.0-2.0.9) lets any authenticated low-privil
Resource exhaustion in Nezha 2.0.13 through 2.3.14 allows an authenticated user to open unbounded concurrent connections
Cleartext third-party credentials are exposed to any authenticated principal holding DDNS read access in Nezha versions
Permanent deadlock of the alerting subsystem in Nezha Dashboard 1.8.0 through 2.3.12 allows any authenticated non-admin
Nezha monitoring dashboards running versions 1.0.0 through 2.3.14 can be knocked offline by an authenticated user who ho
Denial of service in the Nezha monitoring dashboard before 2.3.8 lets any authenticated non-administrator account crash
Nezha Monitoring versions prior to 2.2.5 expose stored third-party API credentials in plaintext through two listing API
Host header injection in Nezha Monitoring versions 1.0.0 through 2.2.0 allows unauthenticated remote attackers to redire
Unbounded WebSocket stream allocation in Nezha Monitoring versions 1.0.0 through 2.1.x allows any authenticated dashboar
Nezha Monitoring versions 2.0.14 through 2.1.0 (exclusive) allows any authenticated user to exploit the NAT-based Host c
EUVD-2026-88021
GHSA-99pj-qr9x-4gmp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB