Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

Scan timing: clone 3.7s · analysis 11.28s · 12.4 MB · GitHub API rate-limit (preflight)

generalaction/emdash

https://github.com/generalaction/emdash · scanned 2026-05-31 01:25 UTC (5 days, 14 hours ago) · 10 languages

481 findings (115 legacy + 366 scanner) 27th percentile · Typescript · large (100-500K LoC) Scanner says 57 (higher by 13)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 5 days, 14 hours ago · v2 · last Δ +0.1 (diff) · 305 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 85.0 0.15 12.75
security_score 54.5 0.25 13.62
testing_score 81.0 0.20 16.20
documentation_score 74.7 0.15 11.21
practices_score 69.0 0.15 10.35
code_quality 60.1 0.10 6.01
Overall 1.00 70.1
Severity distribution — click a segment to filter
Active filters: layer: security × excluding tests × Reset all
Scan summary Repository scanned at 57.4/100 with 100.0% coverage. It contains 4247 nodes across 17 cross-layer flows, written primarily in mixed languages. Engine surfaced 190 findings — concentrated in frontend (74), software (50), quality (25). Risk profile is high: 0 critical, 15 high, 38 medium. Recommended next step: open the frontend layer findings first — that's where the highest-impact wins live.

Showing 24 of 305 findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Legacy security path_traversal conf 1.00 [SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../etc/passwd` resolves cleanly.
After joining, re-check containment: `if !strings.HasPrefix(filepath.Clean(joined), filepath.Clean(baseDir)+string(os.PathSeparator)) { error }`. In Node: `path.resolve(base, x); if (!resolved.startsWith(base + path.sep)) throw`.
src/main/core/projects/worktrees/hosts/local-worktree-host.ts:64 path_traversallegacy
high Legacy security auth conf 0.83 Secret-like setting is echoed into a password input value
Settings screens sometimes render API keys, tokens, or passwords back into HTML/JSX password fields. That still exposes the secret to page source, browser extensions, screenshots, and DOM scraping.
src/renderer/features/integrations/AsanaSetupForm.tsx:14 authlegacy
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in scripts/release/build.ts:35
Found a known-risky pattern (exec_used). Review and replace if possible.
scripts/release/build.ts:35 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in scripts/release/notarize-mac.ts:54
Found a known-risky pattern (exec_used). Review and replace if possible.
scripts/release/notarize-mac.ts:54 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in scripts/release/rebuild-native.ts:18
Found a known-risky pattern (exec_used). Review and replace if possible.
scripts/release/rebuild-native.ts:18 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in scripts/release/verify-mac.ts:88
Found a known-risky pattern (exec_used). Review and replace if possible.
scripts/release/verify-mac.ts:88 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in scripts/release/verify-win.ts:28
Found a known-risky pattern (exec_used). Review and replace if possible.
scripts/release/verify-win.ts:28 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/app/service.ts:461
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/app/service.ts:461 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/app/utils.ts:14
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/app/utils.ts:14 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/execution-context/local-execution-context.ts:40
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/execution-context/local-execution-context.ts:40 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/execution-context/ssh-execution-context.ts:50
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/execution-context/ssh-execution-context.ts:50 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/execution-context/types.ts:28
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/execution-context/types.ts:28 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/fs/impl/ssh-fs.ts:95
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/fs/impl/ssh-fs.ts:95 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/ssh/lifecycle/remote-shell-profile.ts:38
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/ssh/lifecycle/remote-shell-profile.ts:38 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in src/main/core/ssh/lifecycle/ssh-client-proxy.ts:84
Found a known-risky pattern (exec_used). Review and replace if possible.
src/main/core/ssh/lifecycle/ssh-client-proxy.ts:84 owaspexec_used
medium Legacy security auth conf 0.92 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
authlegacy
low Legacy security security conf 1.00 [SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blank"> without rel="noopener noreferrer" leaks window.opener to the opened page. The opened page can then run window.opener.location = 'phishing-site' and the parent tab quietly navigates to attacker-controlled content (reverse tabnabbing). OWASP-classic; modern browsers default rel='noopener' for new windows but explicit attribute is still required for compatibility.
Add rel="noopener noreferrer" to every <a target="_blank">: <a href="..." target="_blank" rel="noopener noreferrer">link</a> For dynamically generated links from JS, set rel on the element before appending. Even safe-looking subdomains should harden — costs nothing.
src/renderer/features/mcp/components/McpCard.tsx:99 securitylegacy
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/features/settings/components/IntegrationRow.tsx:111
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/features/settings/components/IntegrationRow.tsx:111 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/features/skills/components/SkillIconRenderer.tsx:52
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/features/skills/components/SkillIconRenderer.tsx:52 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/lib/components/agent-logo.tsx:37
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/lib/components/agent-logo.tsx:37 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/lib/components/terminal-shell-option-label.tsx:26
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/lib/components/terminal-shell-option-label.tsx:26 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/lib/ui/mermaid-diagram-dialog.tsx:27
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/lib/ui/mermaid-diagram-dialog.tsx:27 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/lib/ui/mermaid-diagram-preview.tsx:39
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/lib/ui/mermaid-diagram-preview.tsx:39 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/renderer/utils/mcpIcons.tsx:36
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/renderer/utils/mcpIcons.tsx:36 owaspdangerous_innerhtml
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/8612bc46-7d0e-47c7-8171-c5618ca2d4f1/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/8612bc46-7d0e-47c7-8171-c5618ca2d4f1/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.