Glassworm Oct 2025
Invisible Unicode payload hidden inside variation selector characters (U+FE00–U+FE0F, U+E0100–U+E01EF). The malicious code is completely invisible in editors and code reviews — it hides inside what appears to be normal JavaScript.
How the attack works
- Attacker encodes malicious JavaScript as invisible Unicode variation selectors
- Payload is inserted into a legitimate-looking npm package or VS Code extension
codePointAt()extracts the hidden bytes at runtimeeval(Buffer.from(...))decodes and executes the payload
What Fabius detects
- Variation Selector characters (U+FE00–U+FE0F) in source code
- Supplementary Variation Selectors (U+E0100–U+E01EF) — likely payload data
eval(Buffer.from(...))combined withcodePointAt()- Unicode decoder patterns (0xFE00 ↔ 0xE0100 ranges)
- Known compromised npm packages and VS Code extensions
- Dependencies pointing to compromised GitHub repositories