AI Security Review
scanned 7h ago · by lpm-firewall-aiNo confirmed malicious attack surface was established by static inspection. Risk is limited to a user-invoked native Trumbo CLI with bundled webview assets and a first-party plugin sandbox loader.
Static reason
High-risk behavior combination matched malicious policy.
Trigger
User runs the trumbo CLI or loads Trumbo plugins through the app.
Impact
No install-time persistence, exfiltration, or foreign AI-agent control-surface hijack confirmed.
Mechanism
user-invoked native CLI and package-owned plugin loading
Rationale
The package has no npm lifecycle execution and the reviewed JavaScript implements package-aligned webview/plugin functionality activated by the Trumbo CLI. The opaque native binary and plugin capabilities are notable but do not show concrete malicious behavior or unconsented install-time mutation.
Evidence
package.jsonbin/trumboextensions/plugin-sandbox-bootstrap.jshub/webview/index.htmlhub/webview/assets/jsx-Bz0zcwM4.jshub/webview/assets/mermaid-parser-BfrZ3jm6.js
Network endpoints1
github.com/xedro98/Trumbo.git
Decision evidence
public snapshotAI called this Clean at 78.0% confidence as Benign with low false-positive risk.
Evidence for block
- Ships native Mach-O CLI binary at bin/trumbo, limiting source-level review of executable internals.
- extensions/plugin-sandbox-bootstrap.js can load user/configured plugin paths and expose tools, commands, rules, providers, automation events, and MCP descriptors when invoked.
Evidence against
- package.json has no preinstall/install/postinstall lifecycle scripts.
- package.json only exposes bin.trumbo -> bin/trumbo for user-invoked CLI execution.
- extensions/plugin-sandbox-bootstrap.js is Trumbo-scoped plugin loader code, not install-time mutation of foreign agent surfaces.
- No package files create .mcp.json, CLAUDE.md, Codex/Cursor settings, shell startup files, VCS hooks, or autostart entries.
- Webview assets are bundled UI/parser/highlighting files; scanner hits are library patterns and static assets.
- Network/API strings in bin/trumbo and web assets appear package-aligned for a Trumbo CLI/hub app, not credential exfiltration evidence.
Behavioral surface
ChildProcessDynamicRequireFilesystemNetworkWebSocket
HighEntropyStringsMinifiedObfuscatedProtestwareUrlStrings
NoLicense
Source & flagged code
4 flagged · loading sourcehub/webview/assets/jsx-Bz0zcwM4.jsView file
1var e=[Object.freeze(JSON.parse(`{"displayName":"JSX","name":"jsx","patterns":[{"include":"#directives"},{"include":"#statements"},{"include":"#shebang"}],"repository":{"access-mod...
Medium
Dynamic Require
Package source references dynamic require/import behavior.
hub/webview/assets/jsx-Bz0zcwM4.jsView on unpkg · L1hub/webview/assets/mermaid-parser-BfrZ3jm6.jsView file
46contains invisible/control Unicode U+FEFF (zero width no-break space)
\r \v \xA0 \u2028\u2029 <U+FEFF>`.split(``);function Da(e){let t=typeof e==`string`?new RegExp(e):e;return Ea.some(e=>t.test(e))}o(Da,`isWhitespace`);function Oa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}o(Oa,`escapeReg
Critical
Trojan Source Unicode
Source contains bidi control or invisible Unicode characters associated with Trojan Source attacks.
hub/webview/assets/mermaid-parser-BfrZ3jm6.jsView on unpkg · L46bin/trumboView file
•path = bin/trumbo
kind = native_binary
sizeBytes = 85639680
magicHex = [redacted]
Medium
hub/webview/icon.icoView file
•path = hub/webview/icon.ico
kind = high_entropy_blob
sizeBytes = 40082
magicHex = [redacted]
High
Ships High Entropy Blob
Package ships high-entropy non-source blobs.
hub/webview/icon.icoView on unpkgFindings
1 Critical1 High5 Medium5 Low
CriticalTrojan Source Unicodehub/webview/assets/mermaid-parser-BfrZ3jm6.js
HighShips High Entropy Blobhub/webview/icon.ico
MediumDynamic Requirehub/webview/assets/jsx-Bz0zcwM4.js
MediumNetwork
MediumProtestware
MediumShips Native Binarybin/trumbo
MediumStructural Risk Force Deep Review
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowUrl Strings
LowNo License