<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Nezha Monitoring (&lt; 2.0.13) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/nezha-monitoring--2.0.13/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 03 Jul 2026 10:22:16 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/nezha-monitoring--2.0.13/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Nezha Monitoring Pre-Auth Path Traversal via Dashboard Prefix Confusion (CVE-2026-53519)</title><link>https://feed.craftedsignal.io/briefs/2026-07-nezha-path-traversal/</link><pubDate>Fri, 03 Jul 2026 10:22:16 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-nezha-path-traversal/</guid><description>A critical pre-authentication path traversal vulnerability, CVE-2026-53519, in Nezha Monitoring's dashboard allows an unauthenticated attacker to read arbitrary files from the server's working directory, leading to the exfiltration of the `jwt_secret_key` and full administrative account takeover.</description><content:encoded><![CDATA[<p>A severe pre-authentication path traversal vulnerability (CVE-2026-53519) has been discovered in Nezha Monitoring, affecting versions prior to 2.0.13. The flaw stems from a prefix confusion in the dashboard's <code>NoRoute</code> handler, where the <code>fallbackToFrontend</code> function incorrectly processes URLs starting with <code>/dashboard</code>. By exploiting <code>strings.HasPrefix</code> and <code>path.Join</code> combined with Go's <code>http.ServeFile</code> behavior, an unauthenticated attacker can craft a malicious URL like <code>/dashboard../data/config.yaml</code> to bypass intended security checks and access sensitive files outside the <code>/admin-dist</code> directory. This allows for the exfiltration of critical data, most notably <code>data/config.yaml</code>, which contains the <code>jwt_secret_key</code>, and <code>data/sqlite.db</code>, which holds user account information. Possession of the <code>jwt_secret_key</code> enables the attacker to forge administrative JSON Web Tokens (JWTs), leading to full administrative account takeover of the Nezha Monitoring instance.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An unauthenticated attacker sends an HTTP GET request to a crafted URL like <code>/dashboard../data/config.yaml</code>, targeting the Nezha Monitoring dashboard.</li>
<li>The vulnerable <code>fallbackToFrontend</code> handler's <code>strings.HasPrefix</code> check incorrectly matches <code>/dashboard..</code>, and <code>strings.TrimPrefix</code> leaves <code>../data/config.yaml</code>.</li>
<li><code>path.Join(&quot;admin-dist&quot;, &quot;../data/config.yaml&quot;)</code> normalizes the path to <code>data/config.yaml</code>, causing <code>os.Stat</code> to locate the sensitive file.</li>
<li>Go's <code>http.ServeFile</code> serves the <code>data/config.yaml</code> file to the attacker, bypassing its internal <code>..</code>-segment guard due to the non-canonical <code>/dashboard..</code> segment.</li>
<li>The attacker extracts the <code>jwt_secret_key</code> from the exfiltrated <code>config.yaml</code> and repeats the process to exfiltrate <code>data/sqlite.db</code>, identifying administrative user IDs.</li>
<li>Using the <code>jwt_secret_key</code> and an administrative user ID, the attacker forges a valid HS256-signed JWT for an administrator account.</li>
<li>The attacker uses the forged JWT as a session cookie or Bearer token to gain full administrative access to the Nezha Monitoring dashboard, enabling actions like server management, user creation/deletion, and notification configuration.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-53519 grants an unauthenticated attacker the ability to read any file within the dashboard's working directory subtree, provided it is one level up from <code>admin-dist</code>. In default deployments, this includes <code>data/config.yaml</code>, which contains sensitive secrets such as the <code>jwt_secret_key</code>, <code>agent_secret_key</code>, OAuth2 client secrets, and GeoIP API keys. Additionally, <code>data/sqlite.db</code> can be exfiltrated, revealing the full dashboard state including all users (and their bcrypt password hashes), server registries, and API tokens. The primary impact is immediate administrative account takeover, allowing the attacker to fully control the Nezha Monitoring instance, potentially leading to data manipulation, unauthorized monitoring, or further compromise of integrated systems.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately update Nezha Monitoring to version 2.0.13 or newer to patch CVE-2026-53519.</li>
<li>Deploy the provided Sigma rule to your SIEM to detect and alert on attempts to exploit CVE-2026-53519.</li>
<li>Implement Web Application Firewall (WAF) rules to block HTTP GET requests containing the <code>/dashboard../data/config.yaml</code> and <code>/dashboard../data/sqlite.db</code> patterns, including their URL-encoded variants listed in the IOCs.</li>
<li>Review access logs for the IOC URLs prior to patching to identify potential exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>path-traversal</category><category>unauthenticated</category><category>webserver</category><category>credential-access</category><category>privilege-escalation</category><category>nezha-monitoring</category><category>cve</category></item></channel></rss>