Skip to main content

Nezha Monitoring CVE-2026-62283

| EUVDEUVD-2026-64139 CRITICAL
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-21 GitHub_M
9.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as RoleMember
  2. Delivery
    Harvest live stream UUID from logs/referer/telemetry
  3. Exploit
    Connect to /ws/terminal/:id or /ws/file/:id
  4. Execution
    Pass existence-only auth check
  5. Persist
    Attach to victim WebSocket pipe
  6. Impact
    Execute shell commands / read-write files on target server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Requires an authenticated Nezha dashboard account of at least RoleMember (PR:L), plus a currently-live terminal or file-manager stream created by another user, plus knowledge of that session's stream UUID obtained from a side channel - specifically reverse-proxy access logs, Referer headers, browser history/bookmark sync, frontend telemetry (Sentry/Bugsnag) breadcrumbs, or a shared-tenant log viewer, because the UUID is exposed as the URL path component of /ws/terminal/:id or /ws/file/:id. Limiting factors: exploitation is not possible against a single-user instance (needs another victim user), the target session must be active at attach time, and the attacker must first authenticate to the dashboard; it does NOT require admin rights, user interaction from the victim, or any non-default configuration - the missing ownership check is present in default builds of the affected versions.

Impact

Signals are largely consistent toward high priority. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 9.9) reflects network-reachable, low-privilege, no-interaction attack with a scope change into the monitored server yielding full CIA loss - plausible given the outcome is shell/file access. The one nuance: exploitation is not fully deterministic because it requires obtaining a currently-live stream UUID via a side channel and racing an active session, which is an attacker-external condition arguably closer to AC:H than AC:L; this is why my independent assessment lowers the score somewhat. EPSS is not provided and cannot be cited. KEV: not listed, so no confirmed active exploitation. POC: no standalone exploit is published, but the fix commit ships explicit ownership-hijack regression tests that document the exact preconditions, materially lowering the bar to weaponization. Net: a legitimately high-priority issue for any multi-user/multi-tenant Nezha deployment, tempered mainly by the need for a UUID leak and a concurrently live victim session rather than any high-CVSS-but-low-real-risk mismatch.

Exploit ScenarioDerived

A low-privileged RoleMember on a shared Nezha dashboard monitors the reverse-proxy access logs (or a shared log viewer / Sentry breadcrumbs) and spots an admin opening wss://dashboard/ws/terminal/<UUID> to a production server. While that session is live, the member connects to the same /ws/terminal/<UUID>, which only checks that the UUID exists, and is joined into the bidirectional pipe - gaining an interactive shell on the target server and full file-manager read/write. No public standalone exploit exists, but the fix commit's regression tests demonstrate the exact hijack.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 21, 2026

Cross-tenant session hijacking in Nezha Monitoring (v1.14.13-1.14.14 and v2.0.0-2.0.9) lets any authenticated low-privilege RoleMember attach to another user's live WebSocket terminal or file-manager session and gain interactive shell access and full file read/write on the monitored target server. The flaw stems from stream UUIDs at GET /ws/terminal/:id and GET /ws/file/:id being validated only for existence, never bound to their creating user, so an attacker who learns a live UUID from access logs, referer headers, browser history, or telemetry breadcrumbs achieves cross-tenant remote code execution. Fixed in v2.0.10; no public exploit identified at time of analysis, though the upstream commit and its regression tests fully disclose the mechanism.

RemediationAI

Vendor-released patch: upgrade to Nezha v2.0.10, which binds each stream to its creator UID and enforces IsStreamAuthorizedForUser before the WebSocket upgrade (commit 6661d6a, advisory GHSA-q6xx-5vr8-p898, release https://github.com/nezhahq/nezha/releases/tag/v2.0.10). Deployments still on the 1.14.x line have no patched release on that branch and should migrate to the 2.0.10 release line. Where immediate upgrade is impossible, reduce exposure by restricting dashboard membership to fully trusted operators only (since exploitation requires an authenticated RoleMember) and by eliminating the UUID-leak channels: strip or avoid logging the /ws/terminal/:id and /ws/file/:id paths in reverse-proxy access logs (nginx/Caddy/Cloudflare), suppress Referer leakage and disable frontend error-reporting/telemetry (Sentry/Bugsnag) breadcrumbs that capture WebSocket URLs, and disable terminal and file-manager features entirely if not required - noting the trade-off that this removes legitimate remote O&M capability. These are mitigations, not fixes; only 2.0.10 removes the missing ownership check.

Affected VersionsENISA

nezha 1.14.13, ≤ 1.14.14
nezha 2.0.0, < 2.0.10

Affected Packages

go github.com/nezhahq/nezha fix: 2.0.10
euvd nezha_1_14_13 no fix
euvd nezha_2_0_0 fix: 2.0.10

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 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 is a self-hostable, lightweight server/website monitoring and operations tool with a dashboard-to-agent RPC channel that brokers interactive terminals and a web file manager over WebSockets. When a user opens a session, createTerminal/createFM allocate an in-memory stream keyed by a random UUID in service/rpc/io_stream.go (CreateStream), and the client then connects to /ws/terminal/:id or /ws/file/:id. The vulnerable CreateStream stored only channel handles with no owner field, and the attach handlers (terminalStream in terminal.go, fmStream in fm.go) authorized the caller solely via GetStream(streamId) - an existence check on the map - never comparing getUid(c) against the stream's creator. This is a textbook CWE-639 (Authorization Bypass Through User-Controlled Key / IDOR): the UUID is treated as an unguessable capability token, but it travels as a URL path component and therefore leaks into logs and side channels, collapsing the security boundary. The vendor fix adds an owner UID to CreateStream and an IsStreamAuthorizedForUser(streamId, uid, isAdmin) check before the WebSocket upgrade.

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

Vendor (GitHub_M) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 8.5 HIGH

AV:N and PR:L (any authenticated member); AC:H because the attacker must obtain a live UUID via an out-of-band leak and race an active session; S:C and C/I/A:H reflect RCE on a separate monitored server.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 21, 2026 - 21:02 EUVD
CVE Published
Aug 21, 2026 - 20:21 cve.org
CRITICAL 9.9

DescriptionCVE.org

Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. Nezha versions 1.14.13 through 1.14.14 and 2.0.0 through 2.0.9 do not bind stream identifiers created by CreateStream in service/rpc/io_stream.go to their creating user, and GET /ws/terminal/:id and GET /ws/file/:id only check whether the supplied UUID exists. An authenticated RoleMember who obtains a live stream UUID from logs, browser history, referer data, or telemetry can attach to another user's terminal or file-manager session, read and write target-server files, and execute shell commands. This issue is fixed in version 2.0.10.

Executive ViewAI

Why It Matters

Nezha Monitoring v1.14.13-1.14.14 and v2.0.0-2.0.9 are vulnerable to critical cross-tenant session hijacking, allowing any low-privilege user to gain remote code execution and file system access on monitored servers. No public exploit identified at time of analysis; however, the CVSS 9.9 rating and immediate availability of vendor-released patch v2.0.10 require urgent deployment.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Medium
popular self-hosted monitoring tool, common in homelab/self-hosting, niche vs enterprise
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Nezha

View all
CVE-2026-101090 CRITICAL POC
9.3 Sep 27

Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re

CVE-2026-53519 CRITICAL POC
9.1 Jun 12

Unauthenticated path traversal in Nezha Monitoring (nezhahq/nezha) before 2.0.13 allows remote attackers to read arbitra

CVE-2026-53523 MEDIUM POC
6.8 Jun 12

Host header injection in Nezha Monitoring versions 1.0.0 through 2.2.0 allows unauthenticated remote attackers to redire

CVE-2026-53522 MEDIUM POC
6.5 Jun 12

Unbounded WebSocket stream allocation in Nezha Monitoring versions 1.0.0 through 2.1.x allows any authenticated dashboar

CVE-2026-53520 MEDIUM POC
6.5 Jun 12

Nezha Monitoring versions 2.0.14 through 2.1.0 (exclusive) allows any authenticated user to exploit the NAT-based Host c

CVE-2026-111384 HIGH
7.1 Oct 16

Nezha monitoring dashboards running versions 1.0.0 through 2.3.14 can be knocked offline by an authenticated user who ho

CVE-2026-111383 HIGH
7.1 Oct 16

Resource exhaustion in Nezha 2.0.13 through 2.3.14 allows an authenticated user to open unbounded concurrent connections

CVE-2026-111387 HIGH
7.1 Oct 16

Cleartext third-party credentials are exposed to any authenticated principal holding DDNS read access in Nezha versions

CVE-2026-105113 HIGH
7.1 Oct 03

Permanent deadlock of the alerting subsystem in Nezha Dashboard 1.8.0 through 2.3.12 allows any authenticated non-admin

CVE-2026-101086 HIGH
7.1 Sep 27

Authenticated privilege escalation in Nezha Dashboard before 2.3.5 lets any account holding the nezha:service:write scop

CVE-2026-101085 HIGH
7.1 Sep 27

Denial of service in the Nezha monitoring dashboard before 2.3.8 lets any authenticated non-administrator account crash

CVE-2026-59155 MEDIUM
6.9 Jul 10

Nezha Monitoring versions prior to 2.2.5 expose stored third-party API credentials in plaintext through two listing API

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy