Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privilege dashboard credentials
-
DeliverySend rapid POST requests to /api/v1/terminal or /api/v1/file
-
ExploitEach request calls CreateStream() inserting a new ioStreamContext into unbounded global map
-
ExecutionHeap memory grows without limit
-
PersistGo runtime exhausts available memory
-
ImpactNezha dashboard crashes and monitoring becomes unavailable
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid Nezha dashboard account at any privilege level (PR:L per CVSS vector) - no administrative role is needed. The attacker must have network access to the Nezha dashboard HTTP(S) service (AV:N). No special non-default configuration is required; the vulnerable endpoints POST /api/v1/terminal and POST /api/v1/file are standard core API routes present in all 1.0.0-2.1.x deployments. Exploitation is bounded by the following limiting factors: (1) unauthenticated users cannot reach the vulnerable handlers, so valid credentials are a hard prerequisite; (2) the speed of memory exhaustion depends on the host's available RAM - well-resourced servers tolerate more sustained abuse before crashing; and (3) streams require a WebSocket upgrade, so the attacker's connection setup overhead slightly slows the flood compared to a pure HTTP request flood. |
| Impact | The CVSS 3.1 score of 6.5 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H is a fair representation of real-world risk. The low-complexity, network-accessible attack is offset by the PR:L requirement, meaning unauthenticated exploitation is not possible. No EPSS score was provided in the input; given the niche, self-hosted deployment model of Nezha and the authenticated access barrier, mass opportunistic exploitation appears unlikely. The absence of a CISA KEV listing and the absence of known public exploit code further support a non-emergency classification. However, for operators whose threat model includes malicious or compromised internal users - such as teams granting dashboard access to multiple personnel - the risk is meaningful: a single low-privilege account is sufficient to blind all monitoring visibility by crashing the dashboard. The impact being purely availability (C:N/I:N/A:H) limits lateral blast radius, but a downed monitoring dashboard can mask real incidents on monitored infrastructure. No conflicting signals exist between the CVSS vector and the description; the network vector and low-privilege requirement are consistent with the dashboard API architecture described. |
| Exploit ScenarioDerived | An attacker who has obtained a low-privilege Nezha dashboard account - whether via credential theft, a shared team account, or a compromised user - writes a simple loop that issues repeated POST requests to /api/v1/terminal or /api/v1/file. Each request registers a new ioStreamContext in the global unbounded map without triggering any server-side limit, causing heap allocation to grow continuously until the Go runtime crashes the dashboard process and monitoring visibility is lost for all operators. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 12, 2026
Unbounded WebSocket stream allocation in Nezha Monitoring versions 1.0.0 through 2.1.x allows any authenticated dashboard user to exhaust server memory and crash the monitoring service. The two affected endpoints - POST /api/v1/terminal and POST /api/v1/file - each insert a long-lived ioStreamContext into a global Go map with no per-user rate limit, no global semaphore, and no per-server connection cap, making repeated calls a trivial denial-of-service vector. No public exploit code has been identified at time of analysis, and the issue is not listed in CISA KEV; the vendor released a patch in version 2.2.0.
RemediationAI
Upgrade Nezha Monitoring to version 2.2.0 or later, which introduces the necessary resource controls on stream creation for both the terminal and file manager endpoints. Full details are available in the vendor security advisory at https://github.com/nezhahq/nezha/security/advisories/GHSA-jg62-j5h6-8mpq. If an immediate upgrade is not possible, restrict dashboard access to the minimum set of trusted user accounts - since PR:L authentication is the sole barrier to exploitation, reducing credential exposure directly constrains attack surface. A reverse-proxy rate-limiting rule targeting POST /api/v1/terminal and POST /api/v1/file (for example, a per-session request-per-minute cap via nginx limit_req or HAProxy stick-tables) can throttle stream creation volume; note that overly aggressive rate limits may interfere with legitimate operator terminal and file-management sessions. Monitoring Go process heap growth on the dashboard host (e.g., via /debug/pprof or external memory alerting) can serve as an early detection signal for exploitation attempts.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nezha Monitoring is a self-hosted, Go-based server monitoring and operations tool (CPE: cpe:2.3:a:nezhahq:nezha). The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling). Two dashboard API handlers - createTerminal() at terminal.go:27-67 and createFM() at fm.go:28-67 - both call rpc.NezhaHandlerSingleton.CreateStream(streamId, ...), which inserts a new ioStreamContext into the global map[string]*ioStreamContext stored in s.ioStreams (io_stream.go:59-67). Because this map is unbounded and the stream lifecycle has no enforcement mechanism - no request quota per user, no system-wide cap on concurrent streams, and no eviction or timeout for idle entries - any caller with dashboard access can inflate this map without constraint until the Go runtime runs out of heap space.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Network-reachable dashboard API requires only low-privilege auth; no complexity or interaction needed; impact is exclusively availability with no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. From version 1.0.0 to before version 2.2.0, the Nezha dashboard exposes two endpoints that create long-lived WebSocket streams to monitored agents: POST /api/v1/terminal → createTerminal() (terminal.go:27-67) and POST /api/v1/file → createFM() (fm.go:28-67). Both call rpc.NezhaHandlerSingleton.CreateStream(streamId, ...) which inserts a new ioStreamContext into an unbounded map[string]*ioStreamContext (s.ioStreams in io_stream.go:59-67). There is no per-user rate limit, no global semaphore, and no per-server connection cap. This issue has been patched in version 2.2.0.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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
Host header injection in Nezha Monitoring versions 1.0.0 through 2.2.0 allows unauthenticated remote attackers to redire
Nezha Monitoring versions 2.0.14 through 2.1.0 (exclusive) allows any authenticated user to exploit the NAT-based Host c
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
Nezha monitoring dashboards running versions 1.0.0 through 2.3.14 can be knocked offline by an authenticated user who ho
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
Authenticated privilege escalation in Nezha Dashboard before 2.3.5 lets any account holding the nezha:service:write scop
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
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-36601
GHSA-jg62-j5h6-8mpq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB