Skip to content

Response, New York. Noah Park: Check Point Patches Actively Exploited Management Server Path Traversal. Detection, Dallas. Ava Okello: Report Finds Nearly Half of Deployed Detections Need Attention Before SOCs Can Trust Them.

SOCtember

Always First. Fast SOC News.

Deep Woods Security banner for its PolinRider Reactime supply-chain compromise analysis, a dark forest with glowing circuit lines.
Image: Deep Woods Security, PolinRider / Reactime research banner, Oct 11, 2026 (fair use).

Detection

Deep Woods Security Traces PolinRider Implant in Reactime Repo That Runs When VS Code Opens the Folder

A backdated commit seeded 20 of 22 Reactime branches with a fake font that runs on VS Code folder open, reads its C2 from Ethereum, and drew zero VirusTotal detections.

Ava Okello, DetectionLondon5 min read

LONDON - Deep Woods Security says a compromise of Reactime, an open-source React debugging tool maintained under Open Source Labs, turned the simple act of opening a cloned repository in Visual Studio Code into code execution. In an Oct. 11, 2026 analysis, the researchers report that 20 of the project's 22 branches carried an implant between June 1 and Oct. 7; only master and dev stayed clean. The malicious commit was backdated to Sept. 2, 2020, labeled as a one-file change, and attributed to a real contributor account, yet it rewrote 387 files with 165,612 lines added and 156,243 removed. The loader was byte-identical on all twenty branches. Deep Woods says delivery and command-and-control match PolinRider, the supply-chain campaign Socket named in July 2026, and the NullReceiver blockchain dead-drop technique, both publicly attributed to North Korea, and it treats that attribution as consistent with public reporting rather than its own finding.

The trigger is a .vscode/tasks.json file. It defines a task labeled eslint-check with runOn set to folderOpen, marked hidden and backgrounded so the terminal panel never appears. The task runs Node against fa-solid-900.woff2, a file named like a Font Awesome font and buried nine directories deep in a test fixture. The file is 37,717 bytes of JavaScript with no line breaks; a second variant of the same loader ships as babel.config.js. The only gate is the VS Code Workspace Trust prompt, which a contributor cloning the project to work on it would normally accept.

GitHub diff of .vscode/tasks.json showing runOn folderOpen and a node command pointing at fa-solid-900.woff2.
Figure: Deep Woods Security, the hidden eslint-check task in .vscode/tasks.json runs on folderOpen and executes a fake Font Awesome file, Oct 11, 2026 (fair use).The hidden task runs the fake font file as soon as the folder opens.

The implant does not hardcode a command server. Its configuration carries an attacker wallet, a nonce, a public blockchain indexer, and a list of legitimate Ethereum RPC providers. The code selects the attacker's transaction by sender and nonce, then reads the C2 IP out of the destination address bytes: the first four bytes are the primary server and the next four the backup. On an isolated Ubuntu VM the server answered Blocked (BOT) and withheld later stages. On a Windows decoy built to look like a developer workstation, detonated Oct. 10, the loader connected over socket.io, rewrote VS Code with a modified main.js and a dropped main.inz.cjs module, trojanized Discord's discord_desktop_core/index.js, installed a private Python 3.12.7 runtime served by the C2, and exfiltrated harvested data as encrypted multipart uploads. The injected module re-resolves its C2 from the blockchain on every VS Code or Discord launch. Deep Woods says that Electron persistence was not in public reporting on the campaign at the time of writing.

Terminal view of deobfuscated JavaScript that converts an Ethereum address into two IP addresses.
Figure: Deep Woods Security, stage 2 decodeAddress function reading primary and backup C2 IPs from Ethereum address bytes, Oct 11, 2026 (fair use).The C2 addresses are decoded from Ethereum address bytes.

For detection teams, the headline number is zero. Deep Woods submitted five samples to VirusTotal, two loader variants, the backdoor, the trojanized Discord core, and the modified VS Code entry, and none drew a detection; sandboxes recorded no behavior because they could not stand up a real VS Code for the module to inject into. The researchers published indicators, hashes, YARA and Sigma rules, and the deobfuscated backdoor on GitHub, and filed Reactime issue #368 on Oct. 6. Maintainers reset all twenty branches on Oct. 7, and the published npm package, reactime 3.1.1, was clean.

VirusTotal result page showing zero of sixty detections for fa-solid-900.woff2 typed as HTML.
Figure: Deep Woods Security, VirusTotal shows 0 of 60 engines flagged the fake font loader, Oct 11, 2026 (fair use).VirusTotal recorded zero detections on the fake font loader.

Deep Woods advises treating any machine that cloned a non-master, non-dev branch between June 1 and Oct. 7 and opened it in VS Code as compromised. Rotate every credential that machine could reach, check VS Code and Discord installations for modified entry points, and match main.inz.cjs and the loader hashes against endpoint telemetry. Audit .vscode/tasks.json across cloned repositories for runOn set to folderOpen; the researchers note it is a legitimate feature, but it should not be pointed at a font. Because the C2 address lives in a blockchain transaction, blocking one IP will not hold; the next transaction can move it. Cleaning the upstream repository also does nothing for a copy already on disk.

Sources:


Ava Okello covers detection engineering, EDR telemetry, and SOC hunting for SOCtember from London.

Related stories

Detection desk