<?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>Javascript — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/javascript/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 23 Apr 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/javascript/feed.xml" rel="self" type="application/rss+xml"/><item><title>xmldom Uncontrolled Recursion DoS Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-xmldom-dos/</link><pubDate>Thu, 23 Apr 2026 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-xmldom-dos/</guid><description>The xmldom library is vulnerable to a denial-of-service (DoS) attack due to uncontrolled recursion in XML serialization leading to application crashes.</description><content:encoded><![CDATA[<p>The <code>xmldom</code> library is susceptible to a denial-of-service (DoS) vulnerability due to uncontrolled recursion in XML serialization. Seven recursive traversals within <code>lib/dom.js</code> lack depth limits, causing a <code>RangeError: Maximum call stack size exceeded</code> and crashing the application when processing deeply nested XML documents. Publicly disclosed on 2026-04-06, the vulnerability impacts multiple functions, including <code>normalize()</code>, <code>XMLSerializer.serializeToString()</code>, and others related to DOM manipulation. This issue arises from the library&rsquo;s pure-JavaScript recursive implementation of DOM operations, which exhausts the call stack. Exploitation requires no authentication or special options, affecting applications that process attacker-controlled XML using vulnerable <code>xmldom</code> versions ( &lt; 0.8.13, &gt;= 0.9.0 and &lt; 0.9.10, and &lt;= 0.6.0).</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious XML document with deeply nested elements.</li>
<li>The vulnerable application receives and parses the crafted XML document using <code>DOMParser.parseFromString()</code>.</li>
<li>The application subsequently calls one of the affected DOM operations, such as <code>normalize()</code>, <code>serializeToString()</code>, <code>getElementsByTagName()</code>, or <code>cloneNode(true)</code>.</li>
<li>The affected function initiates a recursive traversal of the deeply nested XML structure within <code>lib/dom.js</code>.</li>
<li>Each level of nesting consumes a JavaScript call stack frame.</li>
<li>The recursive calls continue until the JavaScript engine&rsquo;s call stack is exhausted.</li>
<li>A <code>RangeError: Maximum call stack size exceeded</code> exception is thrown.</li>
<li>The application crashes due to the uncaught exception, leading to a denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in a denial-of-service condition. Any service parsing attacker-controlled XML with a vulnerable version of <code>xmldom</code> can be crashed by a single crafted payload. This can lead to failed request processing. In deployments where uncaught exceptions terminate the worker or process, the impact can extend beyond a single request and disrupt service availability more broadly. Tests show that stack exhaustion occurs with nesting depths between 5,000 and 10,000 levels depending on the operation.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade <code>@xmldom/xmldom</code> to version &gt;= 0.8.13 or &gt;= 0.9.10 to remediate CVE-2026-41673.</li>
<li>If upgrading is not immediately feasible, consider implementing input validation to limit the nesting depth of XML documents processed by applications using <code>xmldom</code>.</li>
<li>Monitor application logs for <code>RangeError: Maximum call stack size exceeded</code> exceptions originating from <code>lib/dom.js</code>, which could indicate exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>dos</category><category>xmldom</category><category>recursion</category><category>javascript</category></item><item><title>brikcss merge Prototype Pollution Vulnerability (CVE-2026-6594)</title><link>https://feed.craftedsignal.io/briefs/2026-04-brikcss-prototype-pollution/</link><pubDate>Mon, 20 Apr 2026 02:16:15 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-brikcss-prototype-pollution/</guid><description>A prototype pollution vulnerability (CVE-2026-6594) in brikcss merge up to version 1.3.0 allows remote attackers to modify object prototype attributes by manipulating the __proto__/constructor.prototype/prototype argument.</description><content:encoded><![CDATA[<p>A prototype pollution vulnerability, identified as CVE-2026-6594, affects brikcss merge versions up to 1.3.0. This vulnerability allows a remote attacker to manipulate the <strong>proto</strong>/constructor.prototype/prototype argument, leading to the modification of object prototype attributes. The vendor was notified, but did not respond. Successful exploitation can lead to denial of service, code injection, or other unintended behaviors in applications using the affected library. Prototype pollution vulnerabilities are particularly concerning as they can have widespread effects, potentially impacting multiple parts of an application or even other applications sharing the same JavaScript runtime.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a vulnerable endpoint in an application using brikcss merge &lt;= 1.3.0.</li>
<li>The attacker crafts a malicious payload containing a <code>__proto__</code>, <code>constructor.prototype</code>, or <code>prototype</code> property.</li>
<li>The malicious payload is sent to the vulnerable endpoint, often as part of a JSON object within a POST request.</li>
<li>The brikcss merge function processes the payload without proper sanitization or input validation.</li>
<li>The <code>__proto__</code> property is used to modify the prototype of JavaScript objects.</li>
<li>The prototype modification injects malicious properties or methods into all objects inheriting from the modified prototype.</li>
<li>The application executes code that relies on the now-polluted prototype.</li>
<li>This leads to unexpected behavior, such as arbitrary code execution, denial-of-service, or information disclosure.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-6594 can lead to a variety of impacts, including denial of service, arbitrary code execution, and information disclosure. Since the vulnerability allows for modification of object prototypes, the impact can be widespread, affecting multiple parts of an application and potentially other applications. The number of affected applications is currently unknown, but any application using a vulnerable version of brikcss merge is potentially at risk.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade brikcss merge to a patched version or remove the library entirely from your project to remediate CVE-2026-6594.</li>
<li>Deploy the Sigma rule &ldquo;Detect Prototype Pollution via HTTP Request&rdquo; to detect exploitation attempts targeting web applications that use brikcss merge.</li>
<li>Implement input validation and sanitization on all user-supplied data processed by brikcss merge to prevent malicious payloads from being processed.</li>
<li>Review and audit code that uses brikcss merge to identify potential vulnerable code paths.</li>
<li>Monitor web server logs for requests containing <code>__proto__</code>, <code>constructor.prototype</code>, or <code>prototype</code> parameters in the request body as described in the attack chain.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>prototype-pollution</category><category>javascript</category><category>code-injection</category><category>cve-2026-6594</category></item><item><title>Axios NPM Supply Chain Attack Delivering Platform-Specific RATs</title><link>https://feed.craftedsignal.io/briefs/2026-04-axios-npm-supply-chain/</link><pubDate>Sat, 04 Apr 2026 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-axios-npm-supply-chain/</guid><description>A supply chain attack on the Axios NPM package injected malicious code into versions v1.14.1 and v0.30.4, leading to the deployment of platform-specific remote access trojans (RATs) after the installation of a rogue dependency that communicated with attacker-controlled infrastructure to retrieve malicious payloads for Windows, MacOS, and Linux.</description><content:encoded><![CDATA[<p>On March 31, 2026, the official Axios node package manager (npm) package was compromised in a supply chain attack. The attack resulted in the deployment of two malicious versions, v1.14.1 and v0.30.4. Axios is a widely-used JavaScript library for making HTTP requests, with approximately 100 million downloads per week. The malicious packages were available for around three hours. The compromised packages introduced a fake runtime dependency, &lsquo;plain-crypto-js&rsquo;, that executes automatically after installation. This dependency then communicates with attacker-controlled infrastructure at 142.11.206.73, pulling down platform-specific payloads for Linux, MacOS, and Windows. The payloads are remote access trojans (RATs), enabling the attackers to gather information and execute additional malicious activities.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker compromised the Axios NPM package and injected malicious code.</li>
<li>Malicious versions v1.14.1 and v0.30.4 were published to the NPM registry.</li>
<li>The malicious packages introduce a fake runtime dependency named &lsquo;plain-crypto-js&rsquo;.</li>
<li>Upon installation of the compromised package, the &lsquo;plain-crypto-js&rsquo; dependency executes automatically via a post-install script.</li>
<li>The dependency connects to the attacker-controlled IP address 142.11.206.73 to retrieve a platform-specific payload.</li>
<li>On MacOS, a binary named &ldquo;com.apple.act.mond&rdquo; is downloaded and executed using zsh.</li>
<li>On Windows, a PowerShell script (6202033.ps1) is downloaded, and the legitimate powershell.exe is copied to &ldquo;%PROGRAM DATA%\wt.exe&rdquo;, and the ps1 script is executed with hidden and execution policy bypass flags.</li>
<li>On Linux, a Python backdoor is downloaded and executed. The downloaded executables act as Remote Access Trojans (RATs) exfiltrating credentials and enabling remote management.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This supply chain attack could lead to significant compromise across numerous organizations using the Axios library. The actors exfiltrate credentials and gain remote management capabilities. All credentials present on systems that installed the malicious package should be considered compromised and immediately rotated. The widespread use of Axios means the impact could extend to many applications and systems, potentially enabling further attacks leveraging compromised credentials. Supply chain attacks like these affecting widely used libraries, as seen in 25% of the top 100 vulnerabilities in the Cisco Talos 2025 Year in Review, highlight the substantial risk they pose.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Roll back to safe Axios versions (v1.14.0 or v0.30.3) immediately to prevent further compromise, as mentioned in the overview.</li>
<li>Investigate systems that downloaded malicious packages (v1.14.1 or v0.30.4) for signs of follow-on payloads from the actor-controlled infrastructure, as described in the overview.</li>
<li>Block the actor-controlled IP address 142.11.206.73 and domain Sfrclak.com at the network perimeter to prevent further communication with the malicious infrastructure, per the IOC list.</li>
<li>Monitor for execution of PowerShell scripts from unusual locations, specifically &ldquo;%PROGRAM DATA%\wt.exe&rdquo;, as part of the attack chain.</li>
<li>Implement a process creation rule to alert when processes connect to external IPs using uncommon parent processes. See example rule below.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>supply-chain</category><category>npm</category><category>javascript</category><category>rat</category></item><item><title>Electron VideoFrame Context Isolation Bypass Vulnerability (CVE-2026-34780)</title><link>https://feed.craftedsignal.io/briefs/2026-04-electron-videoframes/</link><pubDate>Sat, 04 Apr 2026 01:16:39 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-electron-videoframes/</guid><description>A context isolation bypass vulnerability exists in Electron applications that bridge VideoFrame objects via contextBridge, potentially allowing an attacker with JavaScript execution in the main world to access the isolated world and Node.js APIs.</description><content:encoded><![CDATA[<p>Electron, a framework for building cross-platform desktop applications using web technologies, is vulnerable to a context isolation bypass (CVE-2026-34780) when handling VideoFrame objects. This vulnerability affects Electron versions 39.0.0-alpha.1 to before 39.8.0, 40.0.0-alpha.1 to before 40.7.0, and 41.0.0-alpha.1 to before 41.0.0-beta.8. Specifically, applications are at risk if they utilize <code>contextBridge.exposeInMainWorld()</code> to pass a VideoFrame object from a preload script to the main world. An attacker who achieves JavaScript execution in the main world, for example, through a cross-site scripting (XSS) vulnerability, can leverage a bridged VideoFrame to bypass context isolation and gain access to the isolated world, including Node.js APIs exposed to the preload script. This access enables further malicious activities, potentially leading to arbitrary code execution on the host system. Patches are available in versions 39.8.0, 40.7.0, and 41.0.0-beta.8.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies an Electron application using a vulnerable version of Electron (39.0.0-alpha.1 to 39.7.x, 40.0.0-alpha.1 to 40.6.x, or 41.0.0-alpha.1 to 41.0.0-beta.7) that also uses <code>contextBridge.exposeInMainWorld()</code> to expose a <code>VideoFrame</code> object.</li>
<li>The attacker injects malicious JavaScript code into the application&rsquo;s main world. This can be achieved through various means, such as exploiting a cross-site scripting (XSS) vulnerability.</li>
<li>The injected JavaScript code interacts with the bridged <code>VideoFrame</code> object.</li>
<li>The <code>VideoFrame</code> object, due to the vulnerability, allows the attacker to bypass context isolation and gain access to the isolated world.</li>
<li>The attacker leverages the access to the isolated world to access Node.js APIs that are exposed to the preload script.</li>
<li>The attacker utilizes the exposed Node.js APIs to perform malicious actions, such as reading sensitive data, modifying application settings, or executing arbitrary code on the host system.</li>
<li>The attacker may escalate privileges by exploiting further vulnerabilities or misconfigurations within the application or the underlying operating system.</li>
<li>The final objective is to achieve arbitrary code execution on the host system, allowing the attacker to perform any desired actions.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability (CVE-2026-34780) allows an attacker to bypass context isolation in affected Electron applications, potentially leading to arbitrary code execution. The number of victims depends on the popularity and security posture of Electron applications that bridge VideoFrame objects. If the attack succeeds, an attacker could steal sensitive data, install malware, or completely compromise the user&rsquo;s system. Sectors heavily reliant on Electron-based desktop applications, such as communication, development, and productivity tools, are at higher risk.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Electron applications to patched versions (39.8.0, 40.7.0, or 41.0.0-beta.8) to address CVE-2026-34780.</li>
<li>Review and sanitize all user-supplied input to prevent XSS vulnerabilities that can be leveraged to exploit CVE-2026-34780.</li>
<li>Implement strict Content Security Policy (CSP) to mitigate the risk of XSS attacks.</li>
<li>Monitor application logs for suspicious JavaScript execution, especially related to <code>VideoFrame</code> objects and <code>contextBridge.exposeInMainWorld()</code>, to detect potential exploitation attempts.</li>
<li>Deploy the Sigma rule for suspicious process execution via Node.js APIs to detect malicious behavior following a successful context isolation bypass.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>electron</category><category>context-isolation</category><category>javascript</category><category>xss</category><category>CVE-2026-34780</category><category>defense-evasion</category><category>privilege-escalation</category></item><item><title>SandboxJS Integrity Escape Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-sandboxjs-escape/</link><pubDate>Fri, 03 Apr 2026 21:44:39 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-sandboxjs-escape/</guid><description>A sandbox integrity escape vulnerability exists in SandboxJS versions prior to 0.8.36, allowing untrusted code to bypass global write protections and mutate host shared global objects, potentially leading to cross-context persistence and broader compromise.</description><content:encoded><![CDATA[<p>A critical vulnerability exists in SandboxJS versions prior to 0.8.36, a JavaScript sandbox library. This vulnerability allows malicious or untrusted JavaScript code executed within the sandbox to escape the sandbox and modify global objects in the host environment. The bypass is achieved through an exposed callable constructor path: <code>this.constructor.call(target, attackerObject)</code>, allowing attackers to circumvent intended protections against direct assignment to global objects. This can lead to persistent modifications of host runtime state and cross-context contamination. Successful exploitation could allow attackers to compromise other requests, tenants, or subsequent sandbox runs within the same process, potentially leading to control-flow hijack in application logic that assumes trusted built-in behavior.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker injects JavaScript code into the SandboxJS environment.</li>
<li>The injected code gains access to the <code>SandboxGlobal</code> constructor via <code>this.constructor</code>.</li>
<li>The attacker leverages <code>Function.prototype.call</code> to invoke the <code>SandboxGlobal</code> constructor with a target global object (e.g., <code>Math</code>, <code>JSON</code>) and a payload object containing properties to overwrite.</li>
<li>The <code>SandboxGlobal</code> constructor copies properties from the attacker-controlled payload object into the specified global object in the host environment, bypassing the intended write-time checks.</li>
<li>The host environment&rsquo;s global object is modified with attacker-supplied values.</li>
<li>Subsequent executions of SandboxJS instances within the same process now operate with the tainted global object.</li>
<li>If the host application relies on the integrity of the mutated global objects, attacker can hijack control flow.</li>
<li>The attacker achieves code execution in the host environment due to the modified global state.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability allows untrusted code to escape the SandboxJS sandbox and directly manipulate the host environment&rsquo;s global objects. This can lead to a variety of impacts, including persistent cross-context contamination, where new sandbox instances are initialized with a tainted state. The modification of critical global objects can lead to unpredictable behavior and, in certain scenarios, enable complete control-flow hijack of the host application. The severity of the impact is considered critical due to the potential for widespread and persistent compromise. Affected versions: npm/@nyariv/sandboxjs (vulnerable: &lt; 0.8.36).</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to SandboxJS version 0.8.36 or later to patch the vulnerability (Affected Packages).</li>
<li>Implement monitoring for unexpected modifications to global objects within the host environment where SandboxJS is deployed (see rule &ldquo;Detect SandboxJS Global Object Mutation via Constructor Call&rdquo;).</li>
<li>Consider implementing additional layers of defense, such as restricting the capabilities of the host environment where SandboxJS is running, to minimize the impact of a successful sandbox escape (see rule &ldquo;Detect SandboxJS Constructor Call to Global Objects&rdquo;).</li>
<li>Review host application code that relies on global objects and consider implementing validation checks to ensure their integrity (see CVE-2026-34208).</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>sandbox-escape</category><category>javascript</category><category>vulnerability</category></item><item><title>Axios npm Package Compromised in Supply Chain Attack</title><link>https://feed.craftedsignal.io/briefs/2026-03-axios-supply-chain/</link><pubDate>Tue, 31 Mar 2026 21:04:21 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-axios-supply-chain/</guid><description>The widely used Axios npm package was compromised via a supply chain attack on March 31, 2026, resulting in the publication of malicious versions through a compromised maintainer account.</description><content:encoded><![CDATA[<p>On March 31, 2026 (UTC), the Axios npm package, a popular JavaScript library for making HTTP/S requests used by millions of applications, was targeted in a supply chain attack. A compromised maintainer account was used to publish malicious versions of the package, specifically <a href="mailto:axios@1.14.1">axios@1.14.1</a> and <a href="mailto:axios@0.30.4">axios@0.30.4</a>, between approximately 00:21 and 03:30 UTC. This incident highlights the risks associated with software supply chains and the potential for attackers to inject malicious code into widely used components, impacting countless downstream applications. Defenders should prioritize monitoring their dependencies and implementing measures to detect and prevent such attacks.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li><strong>Compromise Maintainer Account:</strong> An attacker gains unauthorized access to the credentials of an Axios npm package maintainer.</li>
<li><strong>Publish Malicious Package Versions:</strong> The attacker uses the compromised account to publish malicious versions of the Axios package (<a href="mailto:axios@1.14.1">axios@1.14.1</a> and <a href="mailto:axios@0.30.4">axios@0.30.4</a>) to the npm registry.</li>
<li><strong>Dependency Resolution:</strong> Developers or automated build systems unknowingly download and incorporate the malicious Axios versions into their projects during dependency resolution.</li>
<li><strong>Malicious Code Execution:</strong> The malicious code within the Axios package executes within the context of the affected applications.</li>
<li><strong>Privilege Escalation (If Applicable):</strong> Depending on the vulnerabilities exploited, the attacker may attempt to escalate privileges within the compromised environment.</li>
<li><strong>Data Exfiltration/Lateral Movement:</strong> The attacker uses the compromised application as a beachhead to exfiltrate sensitive data or move laterally to other systems on the network.</li>
<li><strong>Establish Persistence:</strong> The attacker establishes persistent access to the compromised environment to maintain control.</li>
<li><strong>Achieve Objectives:</strong> The attacker achieves their ultimate objectives, which could include data theft, system disruption, or further compromise of the software supply chain.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This supply chain attack on the Axios npm package has the potential to affect millions of applications that depend on the library. Successful exploitation could lead to data breaches, unauthorized access to systems, and widespread disruption of services. The exact scope of the impact depends on the nature of the malicious code injected into the Axios package and the vulnerabilities it exploits.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Monitor npm package installations for the presence of <a href="mailto:axios@1.14.1">axios@1.14.1</a> and <a href="mailto:axios@0.30.4">axios@0.30.4</a> and investigate any occurrences (refer to the <strong>Overview</strong> section).</li>
<li>Implement integrity checks for npm packages to detect unauthorized modifications to dependencies.</li>
<li>Deploy the provided Sigma rule to detect suspicious process execution within applications using the Axios library (see <strong>rule: &ldquo;Detect Suspicious Process Execution from Axios&rdquo;</strong>).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>supply-chain</category><category>npm</category><category>javascript</category></item><item><title>Forge Ed25519 Signature Forgery Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-09-forge-ed25519-forgery/</link><pubDate>Thu, 26 Mar 2026 22:08:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-forge-ed25519-forgery/</guid><description>Forge is vulnerable to signature forgery in Ed25519 due to a missing check that S &lt; L, allowing non-canonical signatures and potentially bypassing authentication/authorization logic, affecting versions before 1.4.0.</description><content:encoded><![CDATA[<p>The Forge library, a popular JavaScript cryptography toolkit, exhibits a signature forgery vulnerability in its Ed25519 implementation. Specifically, the verification process lacks a critical check to ensure that the scalar &lsquo;S&rsquo; is less than the group order &lsquo;L&rsquo; (S &lt; L). This omission enables the acceptance of non-canonical signatures, effectively forging signatures. This vulnerability affects Forge versions prior to 1.4.0. An attacker could exploit this flaw to bypass security mechanisms that rely on the uniqueness of cryptographic signatures, such as authentication systems, replay protection, and signed-object canonicalization checks. This is especially critical for applications assuming that valid signatures are unique. The issue was identified in commit <code>8e1d527fe8ec2670499068db783172d4fb9012e5</code> and has been present since the introduction of Ed25519 support.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies an application using Forge&rsquo;s Ed25519 implementation for signature verification.</li>
<li>The attacker obtains a valid Ed25519 signature for a specific message using a legitimate key pair.</li>
<li>The attacker manipulates the valid signature by adding the Ed25519 group order &lsquo;L&rsquo; to the &lsquo;S&rsquo; component of the signature (bytes 32-63), creating a non-canonical signature.</li>
<li>The attacker submits the forged, non-canonical signature to the vulnerable application for verification.</li>
<li>The Forge library, due to the missing &lsquo;S &lt; L&rsquo; check, incorrectly validates the forged signature as authentic.</li>
<li>The vulnerable application accepts the forged signature, potentially granting unauthorized access or allowing malicious actions.</li>
<li>The attacker successfully bypasses authentication or authorization controls that rely on signature validation.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can lead to a bypass of authentication and authorization mechanisms in applications that rely on Forge&rsquo;s Ed25519 implementation for signature verification. This could result in unauthorized access to sensitive data, account compromise, or the execution of malicious commands. The number of affected applications is potentially significant, given Forge&rsquo;s widespread use in JavaScript-based systems. This is further compounded by the vulnerability existing since the initial implementation of Ed25519 in the library. The impact of this vulnerability will vary, depending on how signatures are used within the application. Applications that depend on unique signatures for integrity checks are at significant risk.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Forge version 1.4.0 or later, which includes a fix for CVE-2026-33895 (<a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33895)">https://nvd.nist.gov/vuln/detail/CVE-2026-33895)</a>.</li>
<li>Apply the provided patch to earlier versions of Forge to enforce strict canonical scalar validation in the Ed25519 verification path.</li>
<li>Deploy the Sigma rule &ldquo;Detect Forged Ed25519 Signatures via Modified S Value&rdquo; to identify attempts to exploit this vulnerability.</li>
<li>Audit applications using Forge to identify and remediate any reliance on signature uniqueness for security-critical functions.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>ed25519</category><category>signature-forgery</category><category>forge</category><category>javascript</category></item><item><title>Mozilla Firefox and Thunderbird Use-After-Free Vulnerability (CVE-2026-4723)</title><link>https://feed.craftedsignal.io/briefs/2026-03-firefox-thunderbird-uaf/</link><pubDate>Tue, 24 Mar 2026 13:16:08 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-firefox-thunderbird-uaf/</guid><description>A use-after-free vulnerability, CVE-2026-4723, in the JavaScript Engine of Mozilla Firefox and Thunderbird before version 149 could allow arbitrary code execution if successfully exploited by an attacker.</description><content:encoded>&lt;p>CVE-2026-4723 is a critical use-after-free vulnerability affecting the JavaScript Engine component in Mozilla Firefox and Thunderbird. This flaw exists in versions prior to 149. A remote attacker could potentially exploit this vulnerability by crafting malicious JavaScript code that, when processed by a vulnerable browser or email client, triggers the use-after-free condition. The vulnerability was reported by Mozilla Corporation and assigned a CVSS v3.1 base score of 9.8, indicating a high…&lt;/p>
</content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>use-after-free</category><category>firefox</category><category>thunderbird</category><category>javascript</category><category>cve-2026-4723</category></item><item><title>Jsrsasign Infinite Loop Vulnerability (CVE-2026-4598)</title><link>https://feed.craftedsignal.io/briefs/2026-03-jsrsasign-infinite-loop/</link><pubDate>Mon, 23 Mar 2026 06:16:21 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-jsrsasign-infinite-loop/</guid><description>Jsrsasign versions before 11.1.1 are vulnerable to an infinite loop via the bnModInverse function when processing zero or negative inputs, potentially leading to a denial of service.</description><content:encoded><![CDATA[<p>The jsrsasign library, a popular JavaScript library for implementing cryptography standards, is susceptible to a denial-of-service vulnerability. Specifically, versions prior to 11.1.1 are vulnerable to CVE-2026-4598, where the <code>bnModInverse</code> function within <code>ext/jsbn2.js</code> can enter an infinite loop when processing zero or negative inputs to the <code>BigInteger.modInverse</code> function. An attacker can exploit this by providing maliciously crafted values (e.g., <code>modInverse(0, m)</code> or `modInverse(-1…</p>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>denial-of-service</category><category>javascript</category><category>node.js</category><category>jsrsasign</category><category>vulnerability</category></item><item><title>Denial of Service Vulnerability in marked via Infinite Recursion</title><link>https://feed.craftedsignal.io/briefs/2024-01-03-marked-dos/</link><pubDate>Wed, 03 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-03-marked-dos/</guid><description>A denial of service vulnerability exists in marked version 18.0.0 due to infinite recursion when processing a specific 3-byte sequence (tab, vertical tab, and newline), leading to unbounded memory allocation and application crash.</description><content:encoded><![CDATA[<p>A critical Denial of Service (DoS) vulnerability has been identified in <code>marked@18.0.0</code>. This vulnerability arises from the processing of a specific 3-byte input sequence: a tab character, a vertical tab character, and a newline character (<code>\x09\x0b\n</code>). An unauthenticated attacker can exploit this by sending this sequence to a Node.js application utilizing the vulnerable version of the <code>marked</code> library. This input triggers an infinite recursion loop within the <code>marked</code> tokenizer during parsing, leading to unbounded memory allocation and ultimately causing the host Node.js application to crash due to Memory Exhaustion (OOM). This vulnerability allows for a total loss of availability for any application using the vulnerable library to process potentially untrusted input.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker sends a crafted input string containing the sequence <code>\x09\x0b\n</code> to a Node.js application using <code>marked@18.0.0</code>.</li>
<li>The <code>space()</code> tokenizer in <code>marked</code> consumes the initial tab character (<code>\x09</code>) using the regex <code>/^(?:[ \t]*(?:\n|$))+/</code>.</li>
<li>The newline block rule fails to match the remaining <code>\x0b\n</code> sequence because the vertical tab is not accounted for in the rule <code>[ \t]</code>.</li>
<li>The parser falls through to the <code>text</code> tokenizer (<code>/^[^\n]+/</code>), which matches the <code>\x0b\n</code> sequence.</li>
<li>Inside the <code>blockTokens()</code> function, the <code>text</code> tokenizer creates a text token.</li>
<li>The <code>blockTokens()</code> function then calls <code>inlineTokens()</code> on the same input (<code>\x0b\n</code>).</li>
<li>The <code>inlineTokens()</code> function&rsquo;s text rule matches <code>\x0b\n</code> and recursively calls <code>inlineTokens()</code> again, leading to an infinite loop.</li>
<li>Each recursive call allocates new token objects and concatenates strings, causing memory usage to grow until the Node.js heap limit is reached, resulting in a crash.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability results in a High-Severity Denial of Service (DoS) via Memory Exhaustion. Any application, API, chatbot, or documentation system using <code>marked@18.0.0</code> to parse untrusted user input is vulnerable. The attack requires minimal resources from the attacker, only the ability to send a 3-byte payload, to cause a total loss of availability. The vulnerability affects <code>npm/marked</code> versions greater than or equal to 18.0.0 and less than or equal to 18.0.1.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of the <code>marked</code> library that addresses the infinite recursion vulnerability.</li>
<li>Monitor Node.js application logs for error messages indicating memory exhaustion or crashes, which might indicate exploitation attempts.</li>
<li>Implement input validation to sanitize or reject input containing the malicious <code>\x09\x0b\n</code> sequence.</li>
<li>Deploy the Sigma rule for <code>marked</code> process crashes due to memory exhaustion to identify exploitation attempts.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>javascript</category><category>marked</category><category>vulnerability</category></item><item><title>locize Client SDK Cross-Origin DOM XSS and Handler Hijack Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-02-locize-xss/</link><pubDate>Tue, 02 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-02-locize-xss/</guid><description>The locize client SDK versions prior to 4.0.21 are vulnerable to cross-origin DOM XSS and handler hijack due to missing origin validation in the InContext Editor, allowing attackers to inject malicious code and exfiltrate data via crafted postMessage events.</description><content:encoded><![CDATA[<p>The locize client SDK, a browser module integrating the locize InContext translation editor, contains a cross-origin vulnerability in versions prior to 4.0.21. The vulnerability stems from the SDK&rsquo;s failure to validate the <code>event.origin</code> property when handling <code>window.addEventListener(&quot;message&quot;)</code> events. This allows a malicious webpage sharing a window reference with a locize-enabled host (e.g., via an iframe) to send crafted <code>postMessage</code> calls, triggering internal handlers without proper authorization. Successful exploitation can lead to DOM-based XSS, hijacking of the <code>api.source</code> and <code>api.origin</code> properties, and CSS injection, potentially compromising the confidentiality and integrity of the application. This vulnerability was discovered via an internal security audit of the locize ecosystem.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker hosts a malicious webpage with the intent to exploit a locize-enabled application.</li>
<li>The locize-enabled application embeds the attacker&rsquo;s page as an iframe or has a <code>window.opener</code>/<code>window.open</code> relationship with it.</li>
<li>The attacker crafts a <code>postMessage</code> with a <code>sender</code> field equal to <code>&quot;i18next-editor-frame&quot;</code> and a malicious payload targeted at specific handlers.</li>
<li>The locize SDK&rsquo;s <code>window.addEventListener(&quot;message&quot;)</code> handler receives the message and, without validating <code>event.origin</code>, dispatches it to the internal handlers.</li>
<li>If the attacker targets the <code>editKey</code> or <code>commitKeys</code> handlers, the attacker-controlled payload values are assigned to <code>item.node.innerHTML</code> or <code>item.node.setAttribute(attr, value)</code>, injecting malicious scripts or HTML.</li>
<li>If the attacker targets the <code>isLocizeEnabled</code> handler, the <code>api.source</code> and <code>api.origin</code> are hijacked, redirecting subsequent messages to the attacker&rsquo;s window and exfiltrating translation content.</li>
<li>If the attacker targets the <code>requestPopupChanges</code> handler, malicious CSS code is injected into the popup&rsquo;s inline style.</li>
<li>The attacker gains unauthorized access to sensitive data or injects malicious content into the locize-enabled application, impacting its integrity and confidentiality.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can lead to several critical consequences. Cross-origin DOM XSS allows arbitrary code execution within the context of the vulnerable application. Hijacking <code>api.source</code> and <code>api.origin</code> results in the leakage of translation content and metadata to the attacker, compromising sensitive information. CSS injection can alter the visual appearance of the application, potentially leading to phishing attacks or further exploitation. The number of victims depends on the adoption rate of vulnerable locize SDK versions prior to 4.0.21.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>locize</code> client SDK version 4.0.21 or later to patch the vulnerability. This version implements <code>event.origin</code> validation in <code>src/api/postMessage.js</code>, mitigating the risk of cross-origin attacks.</li>
<li>Deploy the Sigma rule &ldquo;Detect Locize Client SDK DOM XSS Attempt via postMessage&rdquo; to identify exploitation attempts based on manipulation of <code>innerHTML</code> or <code>setAttribute</code> in the locize context.</li>
<li>Enable web server logging and monitor for suspicious <code>postMessage</code> events originating from unexpected domains to detect potential exploitation attempts targeting the locize SDK.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>dom-xss</category><category>postMessage</category><category>locize</category><category>javascript</category></item></channel></rss>