Skip to main content

Nezha EUVDEUVD-2026-102568

| CVE-2026-111387 HIGH
Improper Removal of Sensitive Information Before Storage or Transfer (CWE-212)
2026-10-16 VulnCheck GHSA-7922-f42v-j7c8
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain authenticated account or scoped PAT
  2. Delivery
    Call GET /api/v1/ddns endpoint
  3. Exploit
    Receive unredacted webhook URL and body
  4. Execution
    Harvest embedded cleartext third-party tokens
  5. Impact
    Abuse stolen credentials on external services

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V14 - Data Protection Data removal before release
Exploitation Conditions

Requires an authenticated Nezha principal - either an admin account or a Personal Access Token holding the nezha:ddns:read scope - able to call GET /api/v1/ddns; no user interaction is needed. Exploitation additionally requires that DDNS webhook profiles actually contain secrets embedded in the WebhookURL (e.g. ?token=...) or WebhookRequestBody fields, since those are the only fields left unredacted. The primary limiting factor is the authentication and scope prerequisite (PR:L), which confines risk to users/tokens already granted DDNS read access; impact is greatest in multi-tenant deployments where a low-privilege user can thereby read all other users' credentials. No special non-default configuration or platform is required beyond having webhook-based DDNS profiles configured.

Impact

The vendor-assigned CVSS 4.0 score is 7.1 (High), driven by VC:H (high confidentiality impact from cleartext third-party credential exposure) with no integrity or availability impact. Critically, the vector is AV:N/AC:L/PR:L/UI:N - PR:L means exploitation requires an authenticated account or a Personal Access Token, so this is NOT remotely exploitable by an anonymous attacker despite the 'network' vector. The equivalent CVSS 3.1 base score is approximately 6.5 (Medium). Exploitation status is 'no public exploit identified at time of analysis' - no POC, EPSS, or KEV data was supplied, so there is no evidence of active exploitation or widespread automated attack probability. The real-world significance is a privilege/tenant boundary violation: in multi-tenant Nezha deployments, any user (or PAT) holding the nezha:ddns:read scope can read EVERY user's DDNS webhook secrets, not just their own, making this a meaningful lateral-credential-harvesting issue rather than a high-CVSS-but-low-real-risk theoretical flaw. The signals are internally consistent (authenticated information disclosure); the main limiting factor is the authentication prerequisite. EPSS and KEV data are absent and should be independently checked before final prioritization.

Exploit ScenarioDerived

An authenticated low-privilege Nezha user, or an attacker who has compromised a Personal Access Token carrying the nezha:ddns:read scope, issues a GET request to /api/v1/ddns. The response returns every user's DDNS webhook profiles with WebhookURL and WebhookRequestBody unredacted, exposing cleartext API tokens embedded in those fields; the attacker then reuses those third-party credentials against the external DNS/webhook services. No public exploit is identified, but the single-request nature makes exploitation trivial for any holder of the required scope.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 16, 2026

Cleartext third-party credentials are exposed to any authenticated principal holding DDNS read access in Nezha versions 2.2.5 through 2.3.14, because the GET /api/v1/ddns list handler returns DDNS webhook profiles without redacting the WebhookURL and WebhookRequestBody fields. An admin account or a Personal Access Token granted the nezha:ddns:read scope can retrieve tokens embedded directly in other users' webhook URLs (for example query strings such as ?token=...) or request bodies, which the vendor's fix specifically addresses for every user's profiles rather than only the requester's. Per the vendor-assigned CVSS 4.0 vector (7.1, PR:L, VC:H with no integrity or availability impact), the exposure is confidentiality-only and gated behind the authentication and scope prerequisite; no public exploit identified at time of analysis, and neither CISA KEV status nor public exploit code is reported for this issue.

RemediationAI

Upgrade Nezha to 2.3.15 or later, which is the version boundary identified in the advisory and the release containing the redaction fix delivered by commits 36b742a7e9a81ed782363dd19efd77b7030fbd0f and 39d398066d8c644fe452f74704e34ada6c7ab61e (see https://github.com/nezhahq/nezha/security/advisories/GHSA-hpfr-cmgc-f455); if an immediate upgrade is not possible, treat every token that was reachable through GET /api/v1/ddns as compromised and rotate the affected third-party DNS/API credentials, then audit and revoke Personal Access Tokens carrying the nezha:ddns:read scope, restricting that scope to administrators only (trade-off: legitimate DDNS automation using non-admin PATs will break and must be re-issued tokens with a narrower custom scope). As a further compensating control, move webhook authentication out of the URL and body into the WebhookHeaders field, which was already redacted on the list path, and avoid placing secrets in webhook query strings (trade-off: some third-party endpoints only accept credentials via query parameters, in which case those tokens must be treated as permanently exposed until the upgrade and rotation complete). Note that after applying the fix, submitting an empty webhook_url or webhook_request_body in an update request no longer clears the field but preserves the previously stored value, so operators who relied on blank submissions to erase those fields must update the profile through another supported path.

Affected VersionsENISA

nezha 2.2.5 <2.3.15

Affected Packages

euvd nezha fix: 2.3.15

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 website monitoring dashboard whose REST API is implemented with the gin framework; the DDNS subsystem stores per-user DDNS profiles in a model.DDNSProfile structure that can authenticate against third-party DNS providers using AccessID/AccessSecret or, alternatively, an outbound webhook (Provider set to 'webhook') defined by WebhookURL, WebhookMethod, WebhookHeaders and WebhookRequestBody. The vulnerability is an instance of CWE-212 (Improper Removal of Sensitive Information Before Storage or Transfer): the credential_redaction logic applied on the list path cleared WebhookHeaders but omitted WebhookURL and WebhookRequestBody, so listDDNS streamed the stored values verbatim to any caller authorized to read DDNS profiles. Because secrets are frequently embedded inside webhook URLs and JSON bodies rather than in a discrete secret field, the omission leaked third-party tokens in cleartext, and in multi-tenant deployments the scope grant is not restricted to the caller's own records. The upstream fix (commit 36b742a7e9a81ed782363dd19efd77b7030fbd0f) blanks both fields in the list response while explicitly preserving the stored values, and a companion change to updateDDNS (commit 39d398066d8c644fe452f74704e34ada6c7ab61e) now treats an empty submitted webhook_url or webhook_request_body as 'leave the stored value unchanged' rather than overwriting it, preventing accidental credential wipes during edits; the same commit series also bundles unrelated hardening (a 1 MiB WebSocket read limit for the file-manager stream and an operator-declared host check for MCP transfer URLs), so the redaction change should not be assumed to be the only behavioral difference in the release.

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 (VulnCheck) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

Authenticated API call over the network (AV:N/AC:L/PR:L/UI:N) exposing cleartext third-party credentials for all users gives C:H, with no integrity or availability impact and no scope change.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Nezha from 2.2.5 before 2.3.15 contains an information disclosure vulnerability that allows authenticated users to retrieve third-party credentials because listDDNS omits WebhookURL and WebhookRequestBody redaction. Admins or PATs with nezha:ddns:read scope can call GET /api/v1/ddns to read cleartext tokens embedded in every user's DDNS webhook profiles.

Technical POC Analysis

CWE-212 (Improper Removal of Sensitive Information Before Storage or Transfer).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Nezha versions 2.2.5 through 2.3.14 expose third-party webhook credentials to authenticated users or tokens with DDNS read access, creating a confidentiality risk that can compromise external integrations. Because the leaked secrets may belong to other users, the issue can undermine trust boundaries and enable downstream unauthorized access. Patch available per vendor advisory; no public exploit identified at time of analysis, but leadership should treat the exposure as a high-priority credential hygiene matter.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular open-source self-hosted server monitoring dashboard, moderate deployment footprint
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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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-62283 CRITICAL
9.9 Aug 21

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

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

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

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