<?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>Unicode-Encoding — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/unicode-encoding/</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>Tue, 24 Mar 2026 14:30:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/unicode-encoding/feed.xml" rel="self" type="application/rss+xml"/><item><title>GlassWorm Supply Chain Attack Using Unicode Encoding and Credential Theft</title><link>https://feed.craftedsignal.io/briefs/2026-03-glassworm-supply-chain/</link><pubDate>Tue, 24 Mar 2026 14:30:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-glassworm-supply-chain/</guid><description>The GlassWorm campaign employs Unicode variation selectors to conceal malicious code within supply chain artifacts, subsequently querying a Solana wallet for C2 URLs and exfiltrating sensitive credentials.</description><content:encoded><![CDATA[<p>The GlassWorm campaign, active since October 2025, targets software supply chains through malicious code concealed using Unicode variation selectors. This technique renders the payload virtually invisible in standard editors and code review processes. The attackers rotate extension IDs, npm package names, wallet addresses, and C2 infrastructure across multiple waves. A decoder component extracts the hidden bytes and executes them via <code>eval()</code> or <code>Function()</code>. The malware queries a Solana wallet to dynamically retrieve C2 URLs and proceeds to steal sensitive information, including <code>.npmrc</code>, <code>.git-credentials</code>, SSH keys (<code>id_rsa</code>, <code>id_ed25519</code>), and token environment variables such as <code>NPM_TOKEN</code>, <code>GITHUB_TOKEN</code>, and <code>OPEN_VSX_TOKEN</code>. Wave 5, observed in March, compromised over 150 GitHub repositories, 72 Open VSX extensions, and 4 npm packages. Defenders relying solely on IOC-based detections may struggle to keep pace with the rapid evolution of this threat.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Malicious code is injected into a software supply chain component (VS Code extension, npm package, etc.).</li>
<li>The payload is encoded using Unicode variation selectors, rendering it nearly invisible.</li>
<li>The victim installs or incorporates the compromised component into their development environment.</li>
<li>A decoder routine within the payload utilizes <code>codePointAt()</code> with arithmetic against <code>0xFE00/0xE0100</code> to reconstruct the original bytecode.</li>
<li>The decoded bytecode is executed using <code>eval()</code> or <code>Function()</code>.</li>
<li>The executed code queries a Solana wallet using RPC methods (<code>getTransaction</code>, <code>getSignaturesForAddress</code>) to retrieve C2 URLs.</li>
<li>The malware targets files such as <code>.npmrc</code>, <code>.git-credentials</code>, <code>id_rsa</code>, and <code>id_ed25519</code> for credential theft.</li>
<li>Stolen credentials and token environment variables (<code>NPM_TOKEN</code>, <code>GITHUB_TOKEN</code>, <code>OPEN_VSX_TOKEN</code>) are exfiltrated to the C2 server.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>The GlassWorm campaign has successfully compromised over 150 GitHub repositories, 72 Open VSX extensions, and 4 npm packages in Wave 5 alone. Successful attacks can lead to the theft of sensitive credentials, potentially granting attackers unauthorized access to code repositories, package management accounts, and other critical infrastructure. This, in turn, can enable further supply chain attacks or intellectual property theft.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Implement the Unicode payload detection rule to identify suspicious densities of Unicode variation selector clusters in source code (see &ldquo;Unicode Payload Detection&rdquo; rule below).</li>
<li>Deploy the decoder detection rule to flag code patterns that use <code>codePointAt()</code> with specific arithmetic operations followed by <code>eval()</code> or <code>Function()</code> calls (see &ldquo;GlassWorm Decoder Detection&rdquo; rule below).</li>
<li>Monitor for network connections originating from non-blockchain applications using Solana RPC methods (<code>getTransaction</code>, <code>getSignaturesForAddress</code>), as described in the overview, to identify potential C2 activity.</li>
<li>Implement access controls and monitoring for sensitive files like <code>.npmrc</code>, <code>.git-credentials</code>, and SSH keys as described in the overview.</li>
<li>Use the <code>glassworm-hunter</code> tool linked in the references section to scan VS Code extensions, node_modules, pip site-packages, and git repos.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>supply-chain</category><category>credential-theft</category><category>unicode-encoding</category></item></channel></rss>