<?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/"><channel><title>@Haxtheweb/Haxcms-Nodejs (&lt;= 25.0.0) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@haxtheweb/haxcms-nodejs--25.0.0/</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>Tue, 19 May 2026 14:46:30 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@haxtheweb/haxcms-nodejs--25.0.0/feed.xml" rel="self" type="application/rss+xml"/><item><title>HAXcms Node.js Backend Private Key Disclosure via Broken HMAC Implementation</title><link>https://feed.craftedsignal.io/briefs/2026-05-haxcms-key-disclosure/</link><pubDate>Tue, 19 May 2026 14:46:30 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-haxcms-key-disclosure/</guid><description>The HAXcms Node.js backend contains two cryptographic implementation errors in the `hmacBase64()` function that allow an unauthenticated attacker to extract the system’s private signing key and forge arbitrary admin-level JSON Web Tokens (JWTs) allowing them to get full admin access with a single HTTP request.</description><content:encoded><![CDATA[<p>The <code>hmacBase64()</code> function in the HAXcms Node.js backend contains two critical cryptographic implementation errors. First, the function passes the literal string &ldquo;0&rdquo; as the HMAC signing key instead of the intended key parameter, resulting in identical HMACs across all HAXcms instances for the same input. Second, after computing the HMAC, the function concatenates the actual signing secret (<code>this.privateKey + this.salt</code>) directly onto the output. This design flaw allows any unauthenticated attacker to extract the system’s private signing key, forge arbitrary admin-level JSON Web Tokens (JWTs), and gain full admin access with a single HTTP request. The vulnerability affects <code>@haxtheweb/haxcms-nodejs</code> versions 25.0.0 and earlier. This vulnerability is tracked as CVE-2026-46395.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker sends an unauthenticated GET request to the <code>/system/api/connectionSettings</code> endpoint.</li>
<li>The server responds with JSON data containing multiple tokens generated by the flawed <code>hmacBase64()</code> function.</li>
<li>The attacker extracts one of these tokens from the response.</li>
<li>The attacker base64-decodes the token.</li>
<li>The attacker discards the first 32 bytes of the decoded token (the HMAC).</li>
<li>The attacker reads the remaining bytes as a UTF-8 string, which contains the <code>privateKey+salt</code> secret.</li>
<li>The attacker uses the extracted <code>privateKey+salt</code> to forge a JWT with admin privileges using <code>JWT.sign(payload, this.privateKey+this.salt)</code>. The forged JWT contains a payload specifying <code>id</code>, <code>user</code> (set to &ldquo;admin&rdquo;), <code>iat</code> (current timestamp), and <code>exp</code> (expiration timestamp).</li>
<li>The attacker uses the forged JWT to access authenticated endpoints, performing actions such as creating, modifying, or deleting sites, and uploading files.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an unauthenticated attacker to gain full administrative control over a HAXcms instance. The attacker can create, modify, or delete sites, upload arbitrary files, and modify content without any login events being recorded. This attack bypasses any strong passwords set by the administrator. The vulnerability affects <code>@haxtheweb/haxcms-nodejs</code> versions 25.0.0 and earlier.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule to detect requests to the <code>/system/api/connectionSettings</code> endpoint as an early warning of exploitation attempts.</li>
<li>Apply patches or updates provided by HAXtheWeb for <code>@haxtheweb/haxcms-nodejs</code> to address CVE-2026-46395.</li>
<li>Monitor web server logs for abnormally long tokens which can indicate exploitation, correlate with the <code>HAXcms Node.js Token Length Anomaly</code> Sigma rule.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>cve-2026-46395</category><category>haxcms</category><category>key-disclosure</category><category>jwt</category><category>privilege-escalation</category></item></channel></rss>