CVE-2026-53521: Nezha Monitoring authorization bypass in DDNS profile binding

CVE-2026-53521 · Severity: medium · CVSS 6.4 · Published 2026-06-12

Nezha Monitoring, a server management and monitoring dashboard, contains a vulnerability that allows a user to hijack another user's Dynamic DNS (DDNS) settings. By predicting and saving a future identification number for a setting that hasn't been created yet, an attacker can force the system to use a victim's credentials and configuration for the attacker's own server once the victim eventually creates that setting. This could lead to unauthorized DNS record updates and the misuse of third-party DNS provider credentials.

Technologies: github.com/nezhahq/nezha (Go), NezhaHQ Nezha Monitoring. Vendors: Go, NezhaHQ.

Quick answers

Is CVE-2026-53521 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-53521 being exploited in the wild.
How severe is CVE-2026-53521?
Medium severity, with a CVSS score of 6.4, published 12 June 2026.
Which products and versions are affected?
github.com/nezhahq/nezha (Go) >= 2.0.14, < 2.1.0, SEMVER:introduced=0, SEMVER:introduced=2.0.14,fixed=2.1.0; NezhaHQ Nezha Monitoring >= 2.0.14, < 2.1.0.
Is there a fix for CVE-2026-53521?
Yes. github.com/nezhahq/nezha (Go): upgrade to 2.1.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-53521 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-53521?
Check whether you run github.com/nezhahq/nezha (Go) or NezhaHQ Nezha Monitoring at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/nezhahq/nezha (Go): upgrade to 2.1.0 or later
    go get github.com/nezhahq/nezha@v2.1.0

Technical details

A second-order authorization bypass exists in Nezha Monitoring's server update path. The `PATCH /server/{id}` endpoint validates existing DDNS profile IDs but fails to reject nonexistent IDs, persisting them in `DDNSProfilesRaw`. When a victim later creates a DDNS profile that matches a pre-bound ID (due to predictable auto-incrementing keys), the background DDNS worker resolves the profile and dispatches updates using the victim's provider configuration (including access secrets and domains) for the attacker's server context. This occurs because the worker path lacks re-validation of profile ownership at the time of dispatch. The vulnerability is addressed in version 2.1.0.

Affected products

  • nezhahq Nezha Monitoring >= 2.0.14, < 2.1.0

Identifiers

  • CVE-2026-53521
  • GHSA-39g2-8x68-pmx8
  • GO-2026-5826

Timeline

  • 2026-05-31: disclosed
  • 2026-06-26: advisory
  • 2026-06-26: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.