live · scanning repos
Scanrepo
github.com
github.com / nicobailon

nicobailon/pi-web-access

TypeScript·187 files·commit 610a520·scanned 1h ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 25 — 1,531 stars — findings likely legitimate code patterns

verdict accurate?
threat-state: lowlive

FINDINGS ░▒▓

criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.chrome-cookies.ts
		const encoded = Buffer.from(script, "utf16le").toString("base64");
		execFile("powershell.exe", ["-NoProfile", "-NonInteractive", "-EncodedCommand", encoded], { timeout: 5000, maxBuffer: 1024 * 1024...
+8
criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.github-extract.ts
	if (process.platform === "win32") {
		const killer = execFile(
			"taskkill",
			["/pid", String(pid), "/T", "/F"],
+8
criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.utils.ts
			}
			const child = spawn("curl", args, { windowsHide: true });
			let out = "";
			let stderr = "";
+8
criticalSuspicious code is reachable from an entry pointFlagged files are imported by the application's entry path: anysearch.ts, auth-fetch.ts, bocha.ts. This means the suspicious code can execute when the app runs.+8
warningCluster of suspicious files reachable from entry55 flagged files form a connected cluster that is reachable from an entry point, suggesting coordinated malicious behavior rather than isolated false positives.+5
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.test/fetch-modes.test.mjs
const lookup = async () => [{ address: "93.184.216.34", family: 4 }];
const png = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=", "base64");...
+2
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.chrome-cookies.ts
	{ id: "helium", name: "Helium", baseDir: "Library/Application Support/net.imput.helium", keychainService: "Helium Storage Key", keychainAccount: "Helium" },
	{ id: "chrome", name: "Chrome", baseDir: ...
+10
criticalBrowser credential store accessAccessing Chrome, Firefox, Edge, or Brave profile directories to steal cookies, passwords, and session tokens.test/chrome-cookie-extraction.test.mjs
		? browser === "Brave"
			? join(home, "Library", "Application Support", "BraveSoftware", "Brave-Browser")
			: browser === "Helium"
				? join(home, "Library", "Application Support", "net.imput.heli...
+10
warningHigh-entropy string literalsFound 63 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.index.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.index.ts+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.anysearch.ts+3
warningHigh-entropy string literalsFound 13 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.auth-fetch.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.brightdata-unlocker.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.chrome-cookies.ts+3

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

177 files scanned @ 610a520 | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration2
file system access20
obfuscation15
supply chain0
owasp / injection0
telemetry
files 177/187rules hit 15engine v6commit 610a520

github

nicobailon/pi-web-access

Web search and content extraction extension for Pi coding agent

TypeScript
1531
275
261d
187 files
177 scanned(95%)
610a520

architecture░▒▓

entry (1) flagged (57) pkg (24)
199 nodes · 492 edgesscroll to zoom · click node to jump to finding