VS Code Marketplace

Nexus Terminal Copycat reviewW1

e7f3e373-3e27-51e6-958f-cccd68aff8fb | v2.8.217
62/ 100
MEDIUM risk
Analyst verdict
Review before use

The AI review rates the findings as likely false positive, but the risk score (62/100) still counts them.

Analysis record

Analysed
Yesterday
Version
v2.8.217
Artifact
SHA256 D38…2A7
Source
Findings (non-IoC)

Is Nexus Terminal Copycat reviewW1 safe?

This extension puts an SSH, serial and telnet console in the VS Code sidebar, along with SFTP transfers, tunnels between hosts, and expect/send macros that can run a JavaScript script. It declares no special permissions and no host permissions, so it asks for nothing beyond the access every VS Code extension already has. That access is wide by nature, since a terminal client can open network sockets and read and write files wherever you can.

The scanner flagged network activity 22 times, and every one of those hits sits inside bundled libraries at extension/node_modules/@emnapi/core/dist/emnapi-core.js and extension/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js. Those are WebAssembly helper packages that arrived with the dependency tree, and the matched lines are the loader setting up a wasm module. If such a match were real, it would mean the extension was phoning somewhere its publisher picked. These hosts belong to the library code.

The rest of the alerts come from the extractor reading minified JavaScript. Endpoint strings like atomics.exchange, charactercodes.dot and color-swatch.swatch are property names from compressed bundles, and entries like 2026-07-29-macro-variables.md and 80-systemd-osc-context.sh are filenames from the documentation and example scripts shipped in the package. Nothing showed a read of .env or SSH keys, nothing matched a malware signature, and the package contains no obfuscated files.

One thing to know: the scripting engine and saved macros give this tool the same reach as a terminal session, so give it the trust you would give any SSH client you install. That breadth is the product.

Evidence ledger

Ranked by severity · findings with a source location link to the code viewer

139 detail rows
Showing 25 of 28 · highest severity first

YARA Rule Matches

13 rules
SeverityRuleHitsFilesMetadata
LOWcredential env files 3
dist/services/networkServers/networkServerDaemon.jsdist/webExtension.jsdist/extension.js
-
LOWpostinstall persistence mechanism 6
examples/scripts/06-interactive-flow.jsdist/webExtension.jsreadme.md +3 more
-
LOWpostinstall file download 10
dist/services/networkServers/networkServerDaemon.jsdist/extension.jspackage.json +7 more
-
LOWSQLInjection 1
dist/extension.js
-
LOWNoUseWeakRandom 3
dist/services/networkServers/networkServerDaemon.jspatches/dhcp+0.2.20.patchdist/extension.js
-
LOWcredential ssh keys 1
dist/extension.js
-
LOWpostinstall crypto operations 11
changelog.mddist/native/network-server-daemon/linux-x64/nexus-network-server-daemondist/native/network-server-daemon/linux-arm64/nexus-network-server-daemon +8 more
-
LOWpostinstall file manipulation 14
changelog.mddist/native/local-pty/linux-x64/nexus-local-ptydist/extension.js +11 more
-
LOWpostinstall system command 20
dist/extension.jschangelog.mdSECURITY.md +17 more
-
LOWpostinstall registry modification 9
changelog.mddist/native/network-server-daemon/linux-x64/nexus-network-server-daemondist/native/network-server-daemon/linux-arm64/nexus-network-server-daemon +6 more
-
LOWpostinstall obfuscation 6
dist/services/scripts/scriptWorker.jsdist/native/local-pty/linux-arm64/nexus-local-ptydist/native/local-pty/linux-x64/nexus-local-pty +3 more
-
LOWpostinstall network communication 26
changelog.mdexamples/scripts/07-complete-procedure.jsdist/services/scripts/assets/nexus-scripts.d.ts +23 more
-
LOWUsingShellInterpreterWhenExecutingOSCommands 1
dist/extension.js
-

Network Indicators

Concrete URLs, domains, IPs, emails, and hashes extracted from the analyzed artifact.

285 total
...

Network indicators are queued for lazy loading

Scroll this section into view to load the detailed rows.

Publisher Evidence

Limited evidence

PRODM280DVTWEEK1

Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.

30
Noisy-finding weight
x1.00
Publisher domain
No domain
Missing
Store verification signal
Not exposed
Not exposed
Extension portfolio
5
Portfolio

10 evidence rows available.

Finding Categories

22
Network
285
IoC Indicators

YARA Rules Matched

13 rules(111 hits)
credential env files postinstall persistence mechanism postinstall file download SQLInjection NoUseWeakRandom credential ssh keys postinstall crypto operations postinstall file manipulation postinstall system command postinstall registry modification postinstall obfuscation postinstall network communication UsingShellInterpreterWhenExecutingOSCommands

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

This extension is an SSH, serial, telnet and port-forwarding client that lives in the VS Code sidebar, with SFTP transfers, jump-host chains and expect/send macros driven by a JavaScript scripting engine. Every capability in that list needs the extension to open sockets, spawn a shell, and read and write files locally and across SFTP. The manifest declares no extension permissions and no host permissions, so it asks for nothing beyond the default grant. The reach is still wide, because that is what a terminal client is, bounded only by the user's own file rights.

The 22 network findings all sit inside bundled dependencies: extension/node_modules/@emnapi/core/dist/emnapi-core.cjs.js, emnapi-core.js, emnapi-core.esm-bundler.js, and extension/node_modules/@tybys/wasm-util/dist/wasm-util.esm-bundler.js. @emnapi/core and @tybys/wasm-util are Node-API and WebAssembly helper packages pulled in by native module bindings. A NET-FETCH match at emnapi-core.js line 58 is the loader instantiating a wasm module rather than the publisher choosing a host to send data to. No entry in the endpoint list resolves to a publisher-controlled server: strings such as constants.re, constants6.re, charactercodes.plus, buf.is and at.group are property chains and hex fragments lifted out of minified JavaScript, while 2026-07-29-macro-variables.md and 80-systemd-osc-context.sh are filenames from documentation and example scripts shipped in the package.

The credential picture is empty in the way that matters. No finding shows a read of .env, .ssh keys or cloud credential files. The 111 code-smell items are the usual postinstall and credential regexes matching general Node.js patterns such as fetch, exec and process.env references, which fire on nearly every non-trivial bundle. The 285 IoC hits carry nothing behind them: no malware signature matched, no obfuscation was detected, and no tool-poisoning finding appears. A telemetry endpoint would normally show up as a specific domain in the network findings; instead the network list points at WASM loaders inside node_modules.

The strongest argument against treating this as benign is the shape of the tool. A scripting engine that can send keys into a live session, plus SFTP and jump-host chaining, gives the extension the same authority as an open terminal, and that is exactly the wrapper a hostile publisher would pick. The publisher string PRODM280DVTWEEK1, version 2.8.217 on a package with zero recorded installs, and an extension name that contains the word Copycat all read as an unpublished review artifact rather than a shipping product. None of that changes what the code shows: no postinstall execution, no downloaded payload, no secret reads, no obfuscation, and every network match accounted for by bundled WASM loaders.

Key Reasons

  • All 22 network findings sit inside bundled @emnapi/core and @tybys/wasm-util WASM loader files under extension/node_modules, with no publisher-controlled host anywhere in the list
  • No malware signature, no obfuscation and no tool-poisoning finding; 285 IoC entries resolve to property chains and documentation filenames
  • 111 code-smell hits are generic Node.js postinstall/credential regexes matching fetch, exec and process.env references
  • No credential-access finding touches .env, .ssh keys or cloud credential files despite the terminal use case
  • SSH, serial, telnet, SFTP and macro execution are the stated product, and no postinstall execution or downloaded payload appears in the package

False Positive Considerations

  • IoC extractor harvested property chains and shipped filenames as endpoints (buf.is, atomics.exchange, 2026-07-29-macro-variables.md)
  • NET-FETCH matches inside bundled @emnapi/core and @tybys/wasm-util WebAssembly loader code, not extension logic
  • Generic code-smell rules firing on standard Node.js fetch/exec/process.env patterns
  • Zero malware signatures, zero obfuscation and zero secret findings behind a 424-item count

Reviewed 2026-10-01; recommended action: no action; model confidence 78%.

About This Extension

Full SSH + serial + telnet + port-forwarding client inside VS Code — no 300MB Remote-SSH agent on the box. Built for network and infra engineers: SSH, serial and telnet consoles, jump-host chains, SFTP, tunnels, expect/send macros with prompted variables, and a JS scripting engine, all in one sideba

Frequently Asked Questions