Embedder Enterprise 2F3
The AI review rates the findings as likely false positive, but the risk score (83/100) still counts them.
Analysis record
- Analysed
- 1 weeks ago
- Version
- v0.3.209
- Artifact
- SHA256 C8A…A71
- Source
- Findings (non-IoC)
Is Embedder Enterprise 2F3 safe?
Embedder Enterprise 2F3 is an AI-assisted firmware engineering tool for VS Code, published by Embedder and installed by about 39 people. It declares no special permissions, and it ships a native Windows helper at extension/bin/embedder.exe alongside its JavaScript in extension/out/. An extension that compiles and flashes firmware has to run local build tools and talk to hardware, so the bundled binary and process launching line up with the stated work.
Most of what the scanner flagged sits in that build output. Sixteen obfuscation alerts, including OBfuscation-UNICODE_HEAVY in extension/out/extension.js and OBfuscation-HEX_STRING_HEAVY in extension/out/embeddercanvas/workbench/main.js, come from minified bundles for the console, graph, plan, review, serial and shader panels. Minifiers fold string tables into dense unicode and hex, and inline base64 assets trip the base64 rules. The thousands of network indicators are substrings rather than addresses: entries like 2-a.top-a.bottom-u.top and 64-pc-windows-msvc.zip are cut out of longer strings, the second being a Rust build target instead of a host.
One alert deserves naming. YARA--Base64_encoded_Executable fires at offset 704461 of extension/bin/embedder.exe, meaning a base64 block inside that binary decodes to a Windows executable. Self-extracting installers and compiled agents with embedded assets do this routinely, and nothing else in the extension points at credential access or at a destination for sending data out.
The scanner tripped on how the code is packaged: minified output, an embedded blob inside a helper binary, and thousands of substring matches from the extractor. None of it shows the extension reading secrets or moving source code off the machine.
Evidence ledger
Ranked by severity · findings with a source location link to the code viewer
YARA Rule Matches
30 rules| Severity | Rule | Hits | Files | Metadata |
|---|---|---|---|---|
| HIGH | Base64 encoded Executable Detects an base64 encoded executable (often embedded) | 1 | bin/embedder.exe | Florian Roth FP 2% |
| LOW | postinstall file download | 21 | out/webview-review.jsout/webview-serial.jsout/embeddercanvas/src/stepWorker.js +18 more | - |
| LOW | Bolonyokte | 1 | bin/embedder.exe | - |
| LOW | NoUseEval | 3 | out/embeddercanvas/workbench/main.jsbin/embedder.exeout/extension.js | - |
| LOW | credential git credentials | 3 | bin/embedder.exeout/webview-review.jsout/webview/index.js | - |
| LOW | postinstall process injection | 1 | bin/embedder.exe | - |
| LOW | SQLInjection | 7 | out/webview-sidebar.jsbin/embedder.exeout/webview-history.js +4 more | - |
| LOW | NoUseWeakRandom | 10 | out/webview-serial.jsout/webview-console.jsout/extension.js +7 more | - |
| LOW | credential generic tokens | 1 | out/extension.js | - |
| LOW | DebuggerStatementsShouldNotBeUsed | 11 | out/webview-console.jsout/webview-serial.jsout/webview/index.js +8 more | - |
| LOW | UsingCommandLineArguments | 2 | bin/embedder.exeout/extension.js | - |
| LOW | LocalStorageShouldNotBeUsed | 4 | out/embeddercanvas/workbench/main.jsout/webview/index.jsout/webview-console.js +1 more | - |
| LOW | GEN PowerShell | 1 | bin/embedder.exe | - |
| LOW | spyeye | 1 | bin/embedder.exe | - |
| LOW | ServerHostnameNotVerified | 1 | bin/embedder.exe | - |
| LOW | postinstall crypto operations | 15 | out/webview/index.jsout/embeddercanvas/src/stepWorker.jsout/webview-graph.js +12 more | - |
| LOW | postinstall file manipulation | 23 | out/webview-serial.jsout/webview-console.jsout/webview-review.js +20 more | - |
| LOW | postinstall environment access | 2 | out/embeddercanvas/vendor/license.emscripten.txtout/embeddercanvas/vendor/license.newstroke.txt | - |
| LOW | NoUseSocketManually | 1 | out/extension.js | - |
| LOW | postinstall system command | 30 | out/webview/index.cssout/webview-serial.jsout/webview-console.js +27 more | - |
| LOW | postinstall registry modification | 12 | out/webview-serial.jsout/webview-plan.jsout/webview/index.js +9 more | - |
| LOW | postinstall obfuscation | 19 | out/webview-serial.jsout/webview/index.jsout/embeddercanvas/src/stepWorker.js +16 more | - |
| LOW | postinstall network communication | 37 | out/embeddercanvas/vendor/license.three-bvh-csg.txtout/webview-console.jsout/webview/index.css +34 more | - |
| LOW | OriginsNotVerified | 6 | bin/embedder.exemedia/dashboard/host.htmlout/review-worker.js +3 more | - |
| LOW | UsingShellInterpreterWhenExecutingOSCommands | 2 | bin/embedder.exeout/extension.js | - |
| LOW | credential postgres credentials | 1 | bin/embedder.exe | - |
| LOW | WeakSSLTLSProtocolsShouldNotBeUsed | 1 | bin/embedder.exe | - |
| LOW | postinstall persistence mechanism | 17 | media/audit/fonts/Saans-Bold.otfout/webview-serial.jsout/KaTeX_Math-BoldItalic-VB447A4D.ttf +14 more | - |
| LOW | credential env files | 9 | out/webview-review.jsout/webview-plan.jsout/webview/index.js +6 more | - |
| LOW | credential vscode credentials | 1 | bin/embedder.exe | - |
Publisher Evidence
Limited evidenceEmbedder
Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
12 evidence rows available.
Finding Categories
YARA Rules Matched
30 rules(244 hits)AI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
The extension calls itself an AI firmware engineer for enterprise teams, and what it ships fits that job: a native Windows helper at extension/bin/embedder.exe plus compiled JavaScript under extension/out/. Firmware work means invoking compilers, flashers and serial tools, so process execution and workspace file access are the product. This build declares no host permissions and no editor permissions in its manifest; the reach comes from the bundled binary and the extension host that runs it.
Every obfuscation alert lands in build output. OBfuscation-UNICODE_HEAVY fires on extension/out/extension.js:151, extension/out/review-worker.js:7 and six webview bundles covering the console, graph, plan, review, serial and shader panels. OBfuscation-HEX_STRING_HEAVY fires on extension/out/embeddercanvas/workbench/main.js:3852, OBfuscation-LARGE_BASE64 on extension/out/webview/index.js:1232 and extension/out/extension.js:96, OBfuscation-FUNCTION_INDIRECT on extension/out/webview-plan.js:39 and extension/out/webview-shaders.js:78. Those rule families describe what a minifier does to string tables and inlined assets. They do not describe runtime behavior.
Credential reach is absent. No finding in this scan reports a read of .env, .git/config, SSH keys or cloud credential files, and none touches VS Code secret storage. For an extension that authenticates nothing and instead drives hardware, that is the expected shape.
One finding warrants a name. YARA--Base64_encoded_Executable matches at extension/bin/embedder.exe:704461, meaning a base64 block inside that binary decodes to a PE image. Self-extracting bundles, firmware toolchains and compiled agents carry assets that way, and so do droppers. The signature identifies the technique, and technique alone does not settle intent.
The network list carries no destination. Entries such as 2-a.top-a.bottom-u.top and 2fwww.in are concatenated or percent-encoded fragments, and 64-pc-windows-msvc.zip is a Rust compiler target triple that got read as a hostname. Nothing listed is a server the extension could call.
The strongest argument against this reading: a bundled executable holding an embedded payload, a display name carrying a version suffix (Embedder Enterprise 2F3), and 39 installs is the profile of a staged dropper. That argument would need either a place to send stolen data or a credential read to land. The scan reports neither, and the remaining volume is rule noise on minified files. What is left is a developer tool that ships a binary to do its job.
Key Reasons
- Bundled bin/embedder.exe and process spawning are consistent with a firmware toolchain extension that must invoke compilers, flashers and serial tools
- All 16 obfuscation findings are located in minified extension/out/ bundles, the output of a bundler rather than intentional obfuscation
- Zero secret-category findings: no .env, .git/config, SSH key or cloud credential reads and no VS Code secret storage access
- The endpoint list is extractor noise, down to the literal Rust target triple 64-pc-windows-msvc.zip being read as a hostname
- The only non-noise hit is YARA--Base64_encoded_Executable at bin/embedder.exe:704461, a technique signature with no matching exfiltration path
False Positive Considerations
- 4,021 IoC entries are substring fragments harvested from minified JavaScript (2-a.top-a.bottom-u.top, 2fwww.in) rather than resolvable hosts
- 16 obfuscation alerts all fall inside extension/out/ minified bundles, which is build output
- 243 code-smell findings are low-severity YARA matches on bundled JavaScript
- The single malware-signature hit matches an embedded-asset pattern that self-extracting binaries and compiled agents also produce
Reviewed 2026-10-19; recommended action: monitor; model confidence 72%.
VS Code version history
Risk trend by version
6 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.
Pick any point on the chart to explore that version's code below.
Source Code Not Available
Source code is not available for this version of the extension.
About This Extension
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace