CVE-2026-101089
LowCVSS 3.1Summary
Nezha before 2.2.7 contains an information disclosure vulnerability in the GET /api/v1/profile endpoint that returns the bcrypt-hashed password field of authenticated users. Attackers can extract password hashes and perform offline cracking attacks without rate limiting or audit trail constraints.
Risk Assessment
The risk is the possibility of password hash theft, which could lead to password cracking via brute-force or dictionary attacks, and subsequent unauthorized access to user accounts.
Recommendation
Immediately upgrade Nezha to version 2.2.7 or later, which removes the password field from the API response, and consider forcing password changes for users if feasible.
Other vulnerabilities in Nezha
See all- CVE-2026-101088Medium
Nezha is a server and website monitoring tool. In versions >= 2.2.11 and < 2.3.1, the service sentinel worker (service/singleton/servicesentinel.go) contains an incomplete fix for a previously reported nil dereference denial of service (GHSA-qjpp-gffx-2wm9). The 2026-07-21 fix re-validated the service lifecycle under serviceResponseDataStoreLock but reused an already-captured, now stale reporter pointer and never re-validated the server, and that lock does not guard ServerShared. An authenticated user with the member role who owns an agent can issue a concurrent server delete (POST /api/v1/batch-delete/server) for their own server to win the race window, causing the worker to dereference a missing entry in the server list snapshot. Because the sentinel workers and the gRPC server have no recover()/recovery interceptor, the resulting panic is unrecovered and crashes the entire instance. This is fixed in version 2.3.1.
- CVE-2026-101087Medium
Nezha versions 2.0.10 through 2.3.2 use a restricted HTTP client to validate user-configurable notification and DDNS webhook URLs, but the denylist did not cover IPv6 transition ranges — specifically the 6to4 prefix 2002::/16 and the local-use IPv4/IPv6 translation prefix 64:ff9b:1::/48. Because such addresses satisfy Go's netip.Addr.IsGlobalUnicast check, the URL validator accepted them. An authenticated user able to configure a webhook may be able to cause the dashboard to issue requests to an otherwise restricted IPv6 endpoint, but only where the dashboard's network provides unusual or non-standards-compliant routing for these transition ranges; no direct path to an IPv4 metadata, loopback, or private-network HTTP request has been demonstrated. The issue is fixed in version 2.3.3 (commit d1fcde8e), which blocks both prefixes.
- CVE-2026-101085Medium
Nezha before 2.3.8 fails to validate alert rule type and duration bounds, allowing authenticated non-administrator users to create malformed rules that trigger unrecovered panics in the alert evaluator goroutine. An attacker can submit a crafted rule via POST /api/v1/alert-rule, crashing the dashboard process.
- CVE-2026-101090Critical
Nezha 2.2.3 contains a Host header injection regression in the OAuth2 redirect endpoint. When the dashboard_host setting is empty, /api/v1/oauth2/{provider} reflects the attacker-supplied Host header into the redirect_uri. An attacker can steal the victim's authorization code and take over the account.
Original NVD description (English source)
Nezha before 2.2.7 contains an information disclosure vulnerability in the GET /api/v1/profile endpoint that returns the bcrypt-hashed password field of authenticated users. Attackers can extract password hashes and perform offline cracking attacks without rate limiting or audit trail constraints.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

