preflight

https://github.com/1shizaan/debugai-mcp

debugai-mcp

Hostile

Score 0 / 100 · 61 files read · 0 critical, 8 high, 12 medium, 11 low findings

Report c5d741ae3a236d7e · first scanned 2026-10-28 · scanned 4× · keyed to the exact package contents, so this link always shows this version

Listed in the Agent Census directory data

Subscores

credentials0
exfiltration70
execution28
injection100
obfuscation98
files84

100 is clean. Deductions come only from the cited findings below.

Findings

highTouches the SSH directory (~/.ssh) in a file that also opens network connections
README.md · line 138 · rule H1
the project: `../../.ssh/id_rsa` and a symlink pointing outside both fail the same check. - **Source files only**, by extension al
highReferences the SSH directory (~/.ssh)
src/explicitProject.ts · line 101 · rule H1
start and whose * `.ssh`, `.aws` and AppData would otherwise be readable; and the same seen from * Windows: a UNC server or shar
highThis package both touches credential material and sends data over the network (in different files) — review the flow before installing
src/explicitProject.ts · line 1 · rule H1
highReferences the SSH directory (~/.ssh)
src/project.ts · line 101 · rule H1
trace * naming `~/.ssh/config:1` was read and sent, and the facts walk ran under it. * `explicitProject` has refused such a roo
highReferences the SSH directory (~/.ssh)
src/sourceContext.ts · line 36 · rule H1
solution, so `../../.ssh/id_rsa` in a crafted error cannot * walk out * - secret-shaped names (.env, *.pem, id_rsa, *.key)
highReferences the SSH directory (~/.ssh)
src/workspaceFacts.ts · line 957 · rule H1
wed a symlink to `~/.ssh/authorized_keys` * (CVE-2026-50549). * * So when Tier 2 lands, the server names a PROBE and its parame
highReferences the SSH directory (~/.ssh)
test/explicitProject.test.ts · line 171 · rule H1
s begin) could read .ssh, .aws and // AppData, and /home, /Users and C:\Users were accepted as project roots. describe('tooBroadFo
highReferences an SSH private key file
test/sourceContext.test.ts · line 129 · rule H1
.local', '.npmrc', 'id_rsa', 'server.pem', 'creds.key']) { expect(isReadableSource(join(root, name))).toBe(false); } }
mediumCode contacts static.modelcontextprotocol.io, which the documentation never mentions
(package) · line 1 · rule M3
static.modelcontextprotocol.io
mediumCan run shell commands from code
src/cli/ui.ts · line 6 · rule M1
spawn } from 'node:child_process'; import { platform } from 'node:os'; const useColor = process.stdout.isTTY === true && !pr
mediumWrites files under the user home directory
src/config.ts · line 14 · rule M5
meSync, unlinkSync, writeFileSync } from 'node:fs'; import { homedir } from 'node:os'; import { dirname, join } from 'node:path';
mediumCan run shell commands from code
src/explicitProject.ts · line 32 · rule M1
leSync } from 'node:child_process'; import { realpathSync, statSync } from 'node:fs'; import { homedir } from 'node:os'; import {
mediumCan run shell commands from code
src/project.ts · line 41 · rule M1
leSync } from 'node:child_process'; import { tooBroad } from './explicitProject.js'; let cached: string | null | undefined; /**
mediumCan run shell commands from code
test/cli.e2e.test.ts · line 9 · rule M1
leSync } from 'node:child_process'; import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync
mediumCan run shell commands from code
test/e2e.test.ts · line 7 · rule M1
leSync } from 'node:child_process'; import { createHash } from 'node:crypto'; import { tmpdir } from 'node:os'; import { fileURLTo
mediumCan run shell commands from code
test/explicitProject.test.ts · line 4 · rule M1
leSync } from 'node:child_process'; import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, writeFileSync } from 'nod
mediumWrites files under the user home directory
test/explicitProject.test.ts · line 5 · rule M5
alpathSync, rmSync, writeFileSync } from 'node:fs'; import { homedir, tmpdir } from 'node:os'; import { join, relative } from 'nod
mediumCan run shell commands from code
test/hook.test.ts · line 7 · rule M1
spawn } from 'node:child_process'; import { mkdtempSync, realpathSync, rmSync } from 'node:fs'; import { tmpdir } from 'node:os';
mediumCan run shell commands from code
test/login.e2e.test.ts · line 7 · rule M1
er opened. import { execFile } from 'node:child_process'; import { createServer, type Server } from 'node:http'; import type { Add
mediumCan run shell commands from code
test/project.test.ts · line 5 · rule M1
leSync } from 'node:child_process'; import { createHash } from 'node:crypto'; import { getProjectRoot, gitToplevel, hashPath, reso
low1 binary file(s) were not parsed (static text analysis only)
(package) · line 1 · rule L3
1 binary files
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/cli/ui.ts · line 11 · rule L1
sTTY === true && !process.env.NO_COLOR && process.env.TERM !== 'dumb'; const wrap = (code: string) => (s: string): string =>
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/config.ts · line 30 · rule L1
NodeJS.ProcessEnv = process.env): string { const override = (env.DEBUGAI_CONFIG_PATH ?? '').trim(); return override || join(ho
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/index.ts · line 130 · rule L1
rawTimeout = Number(process.env.DEBUGAI_TIMEOUT_MS); const timeoutMs = Number.isFinite(rawTimeout) && rawTimeout > 0 ? rawTimeou
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/cli.e2e.test.ts · line 28 · rule L1
nv: { PATH: process.env.PATH, HOME: home, CI: '1', NO_COLOR: '1', DEBUGAI_CONFIG_PATH: join(home, 'none', 'config.
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/debugError.test.ts · line 639 · rule L1
nst saved = { HOME: process.env.HOME, USERPROFILE: process.env.USERPROFILE }; const cleanup: string[] = []; afterEach(() => {
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/e2e.test.ts · line 82 · rule L1
env: { ...process.env, DEBUGAI_API_KEY: apiKey, DEBUGAI_API_BASE: apiBase, // Isolate from any real ~/
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/explicitProject.test.ts · line 240 · rule L1
nst saved = { HOME: process.env.HOME, USERPROFILE: process.env.USERPROFILE }; afterEach(() => { for (const [k, v] of Object.
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/hook.test.ts · line 205 · rule L1
{ env: { ...process.env, DEBUGAI_CONFIG_PATH: join(tmpdir(), 'debugai-hook-e2e-nonexistent', 'config.json'), ...env },
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/login.e2e.test.ts · line 61 · rule L1
, { env: { ...process.env, CI: '1', DEBUGAI_API_KEY: '', DEBUGAI_API_BASE: base, DEBUGAI_CONFIG_PATH: configPath }, ti
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/project.test.ts · line 97 · rule L1
nst saved = { HOME: process.env.HOME, USERPROFILE: process.env.USERPROFILE }; afterEach(() => { for (const [k, v] of Object.

Permission surface

Network endpoints
api.example.testapi.testdebugai-mvp-production.up.railway.appdebugai.ioenv.testexample.testfile.testgithub.comimg.shields.iomarketplace.visualstudio.comopen-vsx.orgopencollective.comregistry.npmjs.orgself.hostedstatic.modelcontextprotocol.iostatus.debugai.iotidelift.comwww.npmjs.com
Environment read
DEBUGAI_TIMEOUT_MSHOMENO_COLORPATHTERMUSERPROFILE
Shell execution
yes — code or scripts can run shell commands
Install hooks
none
Credential material
Touches the SSH directory (~/.ssh) in a file that also opens network connections
Reads named environment variables (normal for API keys; listed in the permission summary)
References the SSH directory (~/.ssh)
References an SSH private key file

Provenance

Source
GitHub
Repository
1shizaan/debugai-mcp
Owner
1shizaan
Stars
0
Forks
0
Repo created
2026-07-24
Last push
2026-10-27
License
MIT

Watch this package

Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.

Share this report: https://preflight.orbitaldeskllc.com/r/c5d741ae3a236d7e