Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated account or scoped PAT
-
DeliveryCall GET /api/v1/ddns endpoint
-
ExploitReceive unredacted webhook URL and body
-
ExecutionHarvest embedded cleartext third-party tokens
-
ImpactAbuse 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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 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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in Nezha Dashboard Access Control and Disclosure Flaws
View all 5Host 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
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
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-102568
GHSA-7922-f42v-j7c8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB