github.com / pascalorg
pascalorg/ editor
TypeScript·4848 files·commit 25a1304·scanned 5d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 15 — 25,058+ stars — findings likely false positives
verdict accurate?
25,058 stars
Partial architecture graph
threat-state: lowlive
FINDINGS ░▒▓
criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.packages/geometry-script/bpy/runner.py
with contextlib.redirect_stdout(log):
exec(compile(request["code"], "script.py", "exec"), module)
build = module.get("build")
if not callable(build):+7criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.packages/geometry-script/src/compile.ts
// Evaluating the model's module is the compiler's job; callers run it in a locked-down worker.
const factory = new Function('__modules', 'THREE', 'lib', body) as (
modules: ModuleTable,
t...+5warningHardcoded IP address in network callFetching data from hardcoded IP addresses instead of domain names is suspicious and may indicate C2 communication.packages/mcp/src/lib/safe-fetch.test.ts
for (const url of [
'http://127.0.0.1/',
'http://127.1.2.3/',
'http://2130706433/', // decimal 127.0.0.1+5warningClipboard read accessnavigator.clipboard.readText() reads the user's clipboard. In a wallet/crypto context this is often used to steal copied seed phrases or private keys.packages/editor/src/lib/scene-clipboard.ts
try {
text = await navigator.clipboard.readText()
} catch {
return hasEditorClipboard()+4warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/core/src/agent-tools/author-scene.ts+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/core/src/agent-tools/room-structure.ts+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/mcp/src/resources/agent-guide.ts+4
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/editor/src/components/editor/room-labels.tsx+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/geometry-script/src/compile.test.ts+3
warningLarge base64-encoded blobA 92-character base64 blob was found. May hide a remote payload or encoded executable code.packages/nodes/src/item/model-loader.test.ts
oAAAATwAAAD//wE8AAAAfn0AAAEMAAAA/wEMAAAAfgAAAAAAAAAAAAAAAAAA...+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.
3000 files scanned @ 25a1304 | 10/22/2026 | heuristic scan — always review manually
risk by category
code execution14
network & exfiltration5
file system access4
obfuscation15
supply chain2
owasp / injection0
telemetry
files 3000/4848rules hit 12engine v7commit 25a1304
github
pascalorg/editor
Open-source 3D architectural editor with a local CLI, MCP tools, and practical workflows for humans and AI agents.
25058
3118
376d
4848 files
3000 scanned(62%)
25a1304
architecture░▒▓
entry (2) flagged (10) pkg (52)
452 nodes · 1331 edgesscroll to zoom · click node to jump to finding