Loading npm security reports…
@jait/gateway@0.1.883: Credential exfiltration – flagged | LPM Firewall
Flagged — allowed with a warning
Allowed by default policy, but 35 finding(s) warrant review before installing.
AI Security Reviewscanned 14d ago · by lpm-firewall-ai Source inspection confirms a credential-forwarding risk: the web search tool sends an available OpenAI API key to an unrestricted configured base URL. This supports a warning for conditional credential exposure, not a claim of covert theft or malicious install behavior.
Static reason
High-risk behavior combination matched malicious policy.; source matched previously finalized malicious package; routed for review
Trigger
A caller invokes web search with an OpenAI key available and a custom OpenAI base URL configured.
Impact
The configured endpoint may receive the key, exposing it outside its intended service destination.
Mechanism
The tool builds a request using the configured base URL and places the key in a bearer authorization header. The URL guard blocks private hosts but does not bind the destination to OpenAI.
AI rationale
Source inspection confirms a credential-forwarding risk: the web search tool sends an available OpenAI API key to an unrestricted configured base URL. This supports a warning for conditional credential exposure, not a claim of covert theft or malicious install behavior.
Evidence
dist/tools/browser-tools.js dist/security/ssrf-guard.js dist/tools/index.js
Decision evidencepublic snapshot AI called this Suspicious at 94.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
The web search tool obtains an OpenAI API key from its API key context or environment and accepts an OpenAI base URL from context or environment. The search request sends that key as a bearer credential to the URL formed from the configured base URL; the guard does not restrict destinations to OpenAI. The web search tool is registered for use by the gateway. Evidence against
The postinstall hook provisions a separately version-pinned Graphify runtime; the inspected install path shows no package self-dependency. Pi MCP provisioning writes a temporary per-session configuration rather than changing global or project Pi configuration. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket
Supply chain HighEntropyStrings Minified PossibleObfuscation
Source & flagged code28 flagged · loading source • scripts.postinstall = node ./bin/install-runtime.mjs
High Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.json View on unpkg 30 import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
742 L743: const execArgs = [nodePath, jaitBin];
L744: if (existsSync(envFlag)) execArgs.push("--env", envFlag);
Findings2 Critical 23 High 6 Medium 4 Low
Critical Credential Exfiltration dist/tools/browser-tools.js
Critical Trigger Reachable Dangerous Capability dist/tools/browser-tools.js
High Install Time Lifecycle Scripts package.json
High Child Process bin/jait.mjs
High Shell bin/jait.mjs
High Eval dist/tools/screenshot-tools.js
High Entrypoint Build Divergence bin/jait.mjs
High Same File Env Network Execution dist/tools/redeploy-tools.js
High Copied Package Dependency Bridge dist/surfaces/browser.js
High Trigger Reachable Credential Exfiltration dist/services/git-forge.js
High Runtime Package Install dist/tools/redeploy-tools.js
Affected versions and remediation This report applies to @jait/gateway@0.1.883 .
See all versions of @jait/gateway for other recorded verdicts.
Review the evidence and your use of @jait/gateway@0.1.883 before allowing it. Restrict the permissions described in this report. Choose an independently verified alternative or release. This report does not establish that other versions are safe. Evidence last updated: 2026-10-09 05:34:41.106Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
94% Suspicious
AI assessment confidence
Package metadata npm Author JakobWl
Maintainers jakobwl
Version 0.1.883
Latest on npm 0.1.959
Published Sep 27, 2026
License MIT
Dependencies 23
Integrity verified
Package size 14.6 MB
Files 2,055
Keywords ai agent coding gateway terminal local-first
UrlStrings
Manifest No manifest risk signals triggered.
scanned 725 file(s), 16.7 MB of source, external domains: 127.0.0.1, accounts.google.com, api.bitbucket.org, api.botframework.com, api.elevenlabs.io, api.github.com, api.moonshot.ai, api.openai.com, api.perplexity.ai, api.search.brave.com, api.telegram.org, api.typesafe.ai, api.x.ai, cdn.agentclientprotocol.com, chevrotain.io, clawhub.ai, dev.azure.com, en.wikipedia.org, fcm.googleapis.com, generativelanguage.googleapis.com, github.com, gmail.googleapis.com, graph.microsoft.com, ipapi.co, langium.org, login.botframework.com, login.microsoftonline.com, oauth2.googleapis.com, ollama.com, openrouter.ai, packages.mozilla.org, react.dev, registry.npmjs.org, sts.windows.net, t.me, wttr.in, www.googleapis.com, www.w3.or, www.w3.org
Oversized source lightweight scan
web-dist/assets/index-cpROtbpB.js 4.07 MB file, sampled 256 KB
Network WebSocket HighEntropyStrings Minified UrlStrings react.dev www.w3.or www.w3.org
30 Manifest entrypoint (scripts.start) carries capability families absent from dist/build output: environment+network, sensitive-file+network, execution+network
L30: import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
L33: import { createInterface } from "node:readline";
L34:
L35: const __dirname = dirname(fileURLToPath(import.meta.url));
L36: const pkg = JSON.parse(
L37: readFileSync(resolve(__dirname, "..", "package.json"), "utf8"),
L38: );
...
L118: } catch (err) {
L119: if (silent) return err.stdout || "";
L120: throw err;
High Entrypoint Build Divergence
Manifest entrypoint contains risky behavior absent from dist/build output.
bin/jait.mjs View on unpkg · L30 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = bin/jait.mjs
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/jait.mjs View on unpkg 59 try {
L60: const loadPlaywright = new Function("return import('playwright')");
L61: const mod = (await loadPlaywright());
High Eval
Package source references dynamic code evaluation.
dist/tools/screenshot-tools.js View on unpkg · L59 20 try {
L21: const { ensureGraphifyRuntime } = await import(runtimeModule);
L22: await ensureGraphifyRuntime({
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/install-runtime.mjs View on unpkg · L20 110 log(`🐤 Starting canary on port ${canaryPort}...\n`);
L111: const canary = spawn("jait", ["--port", String(canaryPort)], {
L112: stdio: "ignore",
L113: detached: true,
L114: env: { ...process.env, PORT: String(canaryPort), __JAIT_CLI: "1" },
L115: windowsHide: true,
...
L117: canary.unref();
L118: const healthy = await waitForHealth(`http://127.0.0.1:${canaryPort}`, 30_000);
L119: if (!healthy) {
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/tools/redeploy-tools.js View on unpkg · L110 6 * **systemd** (detected when INVOCATION_ID is set):
L7: * 1. npm install -g @jait/gateway@latest
L8: * 2. Spawn canary on PORT+1, health-check it
...
L19: */
L20: import { execSync, spawn } from "node:child_process";
L21: import { describeUpdateFailure } from "../routes/update-failure.js";
High Runtime Package Install
Package source invokes a package manager install command at runtime.
dist/tools/redeploy-tools.js View on unpkg · L6 8 const DEFAULT_BROWSER_ID = "browser-default";
L9: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L10: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L135: message: `Navigated to ${snapshot.url}`,
L136: data: buildSnapshotPayload(surface.id, snapshot, session),
L137: };
...
L323: const extension = /\.(png|jpe?g|webp|gif)$/i.exec(screenshotPath)?.[0].toLowerCase() ?? ".png";
L324: const displayDir = resolve(process.cwd(), ".jait", "shots");
L325: const displayPath = join(displayDir, `browser-${randomUUID()}${extension}`);
...
L333: const remote = await ws.proxyFsOp(context.executionNodeId, "readBinary", { path: screenshotPath });
L334: bytes = Buffer.from(remote.content, "base64");
L335: }
Critical Credential Exfiltration
Source appears to send environment or credential material to an external endpoint.
dist/tools/browser-tools.js View on unpkg · L8 8 Trigger-reachable chain: manifest.main -> dist/index.js -> dist/tools/index.js -> dist/tools/browser-tools.js
L8: const DEFAULT_BROWSER_ID = "browser-default";
L9: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L10: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L135: message: `Navigated to ${snapshot.url}`,
L136: data: buildSnapshotPayload(surface.id, snapshot, session),
L137: };
...
L323: const extension = /\.(png|jpe?g|webp|gif)$/i.exec(screenshotPath)?.[0].toLowerCase() ?? ".png";
L324: const displayDir = resolve(process.cwd(), ".jait", "shots");
L325: const displayPath = join(displayDir, `browser-${randomUUID()}${extension}`);
...
L333: const remote = await ws.proxyFsOp(context.executionNodeId, "readBinary", { path: screenshotPath });
L334: bytes = Buffer.from(remo
Critical Trigger Reachable Dangerous Capability
A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.
dist/tools/browser-tools.js View on unpkg · L8 406 package = @jait/gateway; repositoryIdentity = jait; dependency = playwright
L406: // boot in environments that do not need browser automation.
L407: const loadPlaywright = new Function("return import('playwright')");
L408: let mod;
High Copied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/surfaces/browser.js View on unpkg · L406 6 Trigger-reachable credential exfiltration chain: manifest.main -> dist/index.js -> dist/services/thread-review-sync.js -> dist/services/git-forge.js
L6: */
L7: import { exec as execCb } from "node:child_process";
L8: import { writeFile, unlink } from "node:fs/promises";
...
L13: return new Promise((resolve, reject) => {
L14: execCb(cmd, { encoding: "utf-8", windowsHide: true, ...opts }, (error, stdout, stderr) => {
L15: if (error) {
...
L27: function cleanGhEnv() {
L28: const { GH_REPO, GH_HOST, GH_TOKEN, GITHUB_TOKEN, ...rest } = process.env;
L29: return rest;
...
L101: proc.on("error", () => resolve(null));
L102: proc.stdin.write("protocol=https\nhost=github.com\n\n");
L103: proc.stdin.end();
High Trigger Reachable Credential Exfiltration
A manifest entrypoint or package-local install chain reaches credential exfiltration behavior.
dist/services/git-forge.js View on unpkg · L6 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git-forge.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git-forge.js View on unpkg web-dist/noVNC/app/images/icons/Makefile View file • path = web-[redacted]
kind = build_helper
sizeBytes = 1331
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
web-dist/noVNC/app/images/icons/Makefile View on unpkg • path = web-dist/noVNC/app/sounds/bell.oga
kind = high_entropy_blob
sizeBytes = 8495
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
web-dist/noVNC/app/sounds/bell.oga View on unpkg • path = web-dist/assets/index-cpROtbpB.js
kind = oversized_source_file
sizeBytes = 4272467
magicHex = [redacted]
Medium Oversized Source File
Package contains source files above the normal full-analysis size ceiling.
web-dist/assets/index-cpROtbpB.js View on unpkg dist/os-control/windows-driver.js#virtual:normalized:round1 View file • stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 13
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
dist/os-control/windows-driver.js#virtual:normalized:round1 View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/routes/network.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/routes/network.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/cli/doctor.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/cli/doctor.js View on unpkg dist/providers/acp-binary-launcher.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/providers/acp-binary-launcher.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/providers/acp-binary-launcher.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/primary-link.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/primary-link.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/clawhub/client.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/clawhub/client.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/os-control/windows-driver.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/os-control/windows-driver.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/skills/install.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/skills/install.js View on unpkg dist/services/code-graph/graphify-runtime.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/code-graph/graphify-runtime.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/code-graph/graphify-runtime.js View on unpkg dist/services/github-pull-requests.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/github-pull-requests.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/github-pull-requests.js View on unpkg High
Ships High Entropy Blob
web-dist/noVNC/app/sounds/bell.oga
High Semantic Analysis Limited dist/os-control/windows-driver.js#virtual:normalized:round1
High Known Malware Source Similarity dist/routes/network.js
High Known Malware Source Similarity dist/cli/doctor.js
High Known Malware Source Similarity dist/providers/acp-binary-launcher.js
High Known Malware Source Similarity dist/services/primary-link.js
High Known Malware Source Similarity bin/jait.mjs
High Known Malware Source Similarity dist/clawhub/client.js
High Known Malware Source Similarity dist/os-control/windows-driver.js
High Known Malware Source Similarity dist/services/git-forge.js
High Known Malware Source Similarity dist/services/git.js
High Known Malware Source Similarity dist/skills/install.js
High Known Malware Source Similarity dist/services/code-graph/graphify-runtime.js
High Known Malware Source Similarity dist/services/github-pull-requests.js
Medium Dynamic Require bin/install-runtime.mjs
Medium Ships Build Helper web-dist/noVNC/app/images/icons/Makefile
Medium Oversized Source File web-dist/assets/index-cpROtbpB.js
Medium Structural Risk Force Deep Review
Runtime surface package.json
Entrypoints main → dist/index.js types → dist/index.d.ts bin → jait
Runtime node >=22.5.0
Artifact 66.8 MB · 2,055 files 2 signature(s)
Install lifecycle postinstall
Behavioral surface ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket HighEntropyStrings Minified PossibleObfuscation UrlStrings Manifest: clean
Source & flagged code28 flagged • scripts.postinstall = node ./bin/install-runtime.mjs
High Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.json View on unpkg 30 import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
742 L743: const execArgs = [nodePath, jaitBin];
L744: if (existsSync(envFlag)) execArgs.push("--env", envFlag);
30 Manifest entrypoint (scripts.start) carries capability families absent from dist/build output: environment+network, sensitive-file+network, execution+network
L30: import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
L33: import { createInterface } from "node:readline";
L34:
L35: const __dirname = dirname(fileURLToPath(import.meta.url));
L36: const pkg = JSON.parse(
L37: readFileSync(resolve(__dirname, "..", "package.json"), "utf8"),
L38: );
...
L118: } catch (err) {
L119: if (silent) return err.stdout || "";
L120: throw err;
High Entrypoint Build Divergence
Manifest entrypoint contains risky behavior absent from dist/build output.
bin/jait.mjs View on unpkg · L30 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = bin/jait.mjs
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/jait.mjs View on unpkg Lines 39-79 javascript
39 description : "Click these elements before capturing (in order)." ,
43 items : { type : "string" ,
Lines 1-29 javascript
3 import { existsSync } from "node:fs" ;
4 import { dirname, resolve } from "node:path" ;
5 import { fileURLToPath } from "node:url" ;
Lines 90-130 javascript
90 const explanation = failure.hint ?? failure.detail;
91 log ( `✗ npm install failed [${ failure . code }]: ${ failure . detail } \n ` );
Lines 1-28 javascript
1 import { randomUUID } from "node:crypto" ;
2 import { mkdir, readFile, writeFile } from "node:fs/promises" ;
3 import { join, resolve } from "node:path" ;
4 import { parseJaitBackendInstances } from "@jait/shared"
406 package = @jait/gateway; repositoryIdentity = jait; dependency = playwright
L406: // boot in environments that do not need browser automation.
L407: const loadPlaywright = new Function("return import('playwright')");
L408: let mod;
High Copied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/surfaces/browser.js View on unpkg · L406 6 Trigger-reachable credential exfiltration chain: manifest.main -> dist/index.js -> dist/services/thread-review-sync.js -> dist/services/git-forge.js
L6: */
L7: import { exec as execCb } from "node:child_process";
L8: import { writeFile, unlink } from "node:fs/promises";
...
L13: return new Promise((resolve, reject) => {
L14: execCb(cmd, { encoding: "utf-8", windowsHide: true, ...opts }, (error, stdout, stderr) => {
L15: if (error) {
...
L27: function cleanGhEnv() {
L28: const { GH_REPO, GH_HOST, GH_TOKEN, GITHUB_TOKEN, ...rest } = process.env;
L29: return rest;
...
L101: proc.on("error", () => resolve(null));
L102: proc.stdin.write("protocol=https\nhost=github.com\n\n");
L103: proc.stdin.end();
High Trigger Reachable Credential Exfiltration
A manifest entrypoint or package-local install chain reaches credential exfiltration behavior.
dist/services/git-forge.js View on unpkg · L6 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git-forge.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git-forge.js View on unpkg web-dist/noVNC/app/images/icons/Makefile View file • path = web-[redacted]
kind = build_helper
sizeBytes = 1331
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
web-dist/noVNC/app/images/icons/Makefile View on unpkg • path = web-dist/noVNC/app/sounds/bell.oga
kind = high_entropy_blob
sizeBytes = 8495
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
web-dist/noVNC/app/sounds/bell.oga View on unpkg • path = web-dist/assets/index-cpROtbpB.js
kind = oversized_source_file
sizeBytes = 4272467
magicHex = [redacted]
Medium Oversized Source File
Package contains source files above the normal full-analysis size ceiling.
web-dist/assets/index-cpROtbpB.js View on unpkg dist/os-control/windows-driver.js#virtual:normalized:round1 View file • stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 13
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
dist/os-control/windows-driver.js#virtual:normalized:round1 View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/routes/network.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/routes/network.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/cli/doctor.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/cli/doctor.js View on unpkg dist/providers/acp-binary-launcher.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/providers/acp-binary-launcher.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/providers/acp-binary-launcher.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/primary-link.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/primary-link.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/clawhub/client.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/clawhub/client.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/os-control/windows-driver.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/os-control/windows-driver.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/skills/install.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/skills/install.js View on unpkg dist/services/code-graph/graphify-runtime.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/code-graph/graphify-runtime.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/code-graph/graphify-runtime.js View on unpkg dist/services/github-pull-requests.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/github-pull-requests.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/github-pull-requests.js View on unpkg description
:
"'selector:text' pair"
},
44 description : "Fill inputs before capturing. Each item is 'cssSelector:text'." ,
49 async execute (input, context) {
50 if (context.signal?.aborted)
51 return { ok: false , message: "Cancelled" };
52 const outPath = resolveOutPath (input.path);
53 const url = resolveTarget (input.target, context.projectRoot);
54 const width = input.mobile ? 393 : Number (input.width ?? 1280 );
55 const height = input.mobile ? 851 : Number (input.height ?? 800 );
56 const deviceScaleFactor = input.mobile ? 3 : 2 ;
57 const fullPage = input.fullPage !== false && ! input.selector;
60 const loadPlaywright = new Function ( "return import('playwright')" );
61 const mod = ( await loadPlaywright ());
High Eval
Package source references dynamic code evaluation.
dist/tools/screenshot-tools.js View on unpkg · L59 62 chromium = mod.chromium;
64 throw new Error ( "chromium not found in playwright module" );
69 message: `Playwright unavailable: ${ err instanceof Error ? err . message : String ( err ) }` ,
72 // Ensure output directory exists
73 const fs = await import ( "node:fs" );
74 const pathMod = await import ( "node:path" );
75 fs. mkdirSync (pathMod. dirname (outPath), { recursive: true });
78 browser = ( await chromium. launch ());
79 const ctx = await browser. newContext ({
binDir
=
dirname
(
fileURLToPath
(
import
.
meta
.url));
8 const runtimeModule = resolve (binDir, "../dist/services/code-graph/graphify-runtime.js" );
9 const sourceTree = resolve (binDir, "../src" );
11 if ( ! existsSync (runtimeModule)) {
12 if ( existsSync (sourceTree)) {
13 console. log ( "[jait] Graphify provisioning deferred until the gateway is built." );
16 console. error ( "[jait] Packaged Graphify runtime manager is missing." );
21 const { ensureGraphifyRuntime } = await import (runtimeModule);
22 await ensureGraphifyRuntime ({
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/install-runtime.mjs View on unpkg · L20 23 onProgress : ( message ) => console. log ( `[jait] ${ message }` ),
26 console. error ( `[jait] ${ error instanceof Error ? error . message : String ( error ) }` );
return
{
94 message: `npm install failed [${ failure . code }]: ${ explanation }` ,
97 // ── 3. Read new version ───────────────────────────────────────────
98 let newVersion = "unknown" ;
100 const raw = execSync ( "npm list -g @jait/gateway --depth=0 --json" , { encoding: "utf8" , timeout: 10_000 , windowsHide: true , stdio: "pipe" });
101 newVersion = JSON . parse (raw).dependencies?.[ "@jait/gateway" ]?.version ?? "unknown" ;
106 log ( `✓ Installed @jait/gateway ${ newVersion } (was ${ oldVersion }) \n ` );
107 // ── 4. Canary health check ────────────────────────────────────────
109 const canaryPort = deps.port + 1 ;
110 log ( `🐤 Starting canary on port ${ canaryPort }... \n ` );
111 const canary = spawn ( "jait" , [ "--port" , String (canaryPort)], {
114 env: { ... process.env, PORT: String (canaryPort), __JAIT_CLI: "1" },
118 const healthy = await waitForHealth ( `http://127.0.0.1:${ canaryPort }` , 30_000 );
119 if ( ! healthy) {
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/tools/redeploy-tools.js View on unpkg · L110 121 process. kill ( - canary.pid, "SIGTERM" );
123 catch { /* ignore */ }
126 message: `Canary failed health check on port ${ canaryPort }. ` +
127 `Update installed but NOT activated. Current gateway is still running.` ,
128 data: { oldVersion, newVersion, canaryPort },
6 * **systemd** (detected when INVOCATION_ID is set):
L7: * 1. npm install -g @jait/gateway@latest
L8: * 2. Spawn canary on PORT+1, health-check it
...
L19: */
L20: import { execSync, spawn } from "node:child_process";
L21: import { describeUpdateFailure } from "../routes/update-failure.js";
High Runtime Package Install
Package source invokes a package manager install command at runtime.
dist/tools/redeploy-tools.js View on unpkg · L6 ;
5 import { BrowserSurface } from "../surfaces/browser.js" ;
6 import { SSRFGuard } from "../security/ssrf-guard.js" ;
7 import { SandboxManager } from "../security/sandbox-manager.js" ;
8 const DEFAULT_BROWSER_ID = "browser-default" ;
9 const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1" ;
10 const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5" ;
Critical Credential Exfiltration
Source appears to send environment or credential material to an external endpoint.
dist/tools/browser-tools.js View on unpkg · L8 11 const DEFAULT_PERPLEXITY_MODEL = "sonar-pro" ;
12 const DEFAULT_PERPLEXITY_OPENROUTER_MODEL = "perplexity/sonar-pro" ;
13 const DEFAULT_GROK_MODEL = "grok-4-1212" ;
14 const DEFAULT_GEMINI_MODEL = "gemini-2.0-flash" ;
15 const DEFAULT_KIMI_BASE_URL = "https://api.moonshot.ai/v1" ;
16 const DEFAULT_KIMI_MODEL = "moonshot-v1-128k" ;
17 function resolveActivePreviewSession ( collaboration , context ) {
18 const sessionId = context.sessionId?. trim ();
19 if ( ! sessionId || ! collaboration)
21 const getter = collaboration.getSessionByPreviewSessionId;
22 if ( typeof getter !== "function" )
24 return getter. call (collaboration, sessionId);
26 function assertPreviewBrowserSelection ( previewSession , browserId ) {
8 Trigger-reachable chain: manifest.main -> dist/index.js -> dist/tools/index.js -> dist/tools/browser-tools.js
L8: const DEFAULT_BROWSER_ID = "browser-default";
L9: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L10: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L135: message: `Navigated to ${snapshot.url}`,
L136: data: buildSnapshotPayload(surface.id, snapshot, session),
L137: };
...
L323: const extension = /\.(png|jpe?g|webp|gif)$/i.exec(screenshotPath)?.[0].toLowerCase() ?? ".png";
L324: const displayDir = resolve(process.cwd(), ".jait", "shots");
L325: const displayPath = join(displayDir, `browser-${randomUUID()}${extension}`);
...
L333: const remote = await ws.proxyFsOp(context.executionNodeId, "readBinary", { path: screenshotPath });
L334: bytes = Buffer.from(remo
Critical Trigger Reachable Dangerous Capability
A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.
dist/tools/browser-tools.js View on unpkg · L8