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.

jingyaogong/minimind-o

https://github.com/jingyaogong/minimind-o · scanned 2026-05-16 22:30 UTC (20 hours, 52 minutes ago) · 10 languages

47 findings (15 legacy + 32 scanner) 13th percentile · Python · small (2-20K LoC) Scanner says 74 (lower by 23)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 20 hours, 52 minutes ago · v1 · 47 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
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Severity: Critical 0 High 11 Medium 14 Low 21 Source: Legacy 15 9-layer 32 Crowd 0 Layer: Quality 10 Security 21 Software 5 Frontend 1 Cicd 1 Api 9

Top 10 actions, ranked by impact × ease. Severity drives impact; tag-based fix-clarity drives ease.

#1
Flask mutation route `switch_model` without `@login_required` — webui/web_demo.py:256
GapSeverity.HIGH Layer.SECURITY score 0.525
Why: high severity · OWASP-class risk
Fix: Add `@login_required` decorator above the route function in webui/web_demo.py:256.
webui/web_demo.py:256
#2
Flask mutation route `clone_voice` without `@login_required` — webui/web_demo.py:267
GapSeverity.HIGH Layer.SECURITY score 0.525
Why: high severity · OWASP-class risk
Fix: Add `@login_required` decorator above the route function in webui/web_demo.py:267.
webui/web_demo.py:267
#3
Flask mutation route `delete_voice` without `@login_required` — webui/web_demo.py:284
GapSeverity.HIGH Layer.SECURITY score 0.525
Why: high severity · OWASP-class risk
Fix: Add `@login_required` decorator above the route function in webui/web_demo.py:284.
webui/web_demo.py:284
#4
Flask mutation route `chat` without `@login_required` — webui/web_demo.py:296
GapSeverity.HIGH Layer.SECURITY score 0.525
Why: high severity · OWASP-class risk
Fix: Add `@login_required` decorator above the route function in webui/web_demo.py:296.
webui/web_demo.py:296
#5
Insecure pattern 'eval_used' in eval_omni.py:39
GapSeverity.HIGH Layer.SECURITY score 0.413
Why: high severity · OWASP-class risk
eval_omni.py:39
#6
Insecure pattern 'eval_used' in webui/web_demo.py:212
GapSeverity.HIGH Layer.SECURITY score 0.413
Why: high severity · OWASP-class risk
webui/web_demo.py:212
#7
Insecure pattern 'eval_used' in scripts/web_demo_omni.py:82
GapSeverity.HIGH Layer.SECURITY score 0.413
Why: high severity · OWASP-class risk
scripts/web_demo_omni.py:82
#8
Insecure pattern 'eval_used' in model/model_omni.py:135
GapSeverity.HIGH Layer.SECURITY score 0.413
Why: high severity · OWASP-class risk
model/model_omni.py:135
#9
Insecure pattern 'eval_used' in trainer/train_sft_omni.py:118
GapSeverity.HIGH Layer.SECURITY score 0.413
Why: high severity · OWASP-class risk
trainer/train_sft_omni.py:118
#10
No auth library detected
GapSeverity.MEDIUM Layer.SECURITY score 0.338
Why: medium severity

Click "Find this gap" on any action above to jump to it on the Findings tab. Adjust the chip bar to filter by impact (severity), layer, or source.

{# ── 2026-05-17 Round 14: AI-agent bridge footer ────────────────────── Discoverability: the /agents/voting/ guide + MCP manifest exist but aren't linked from anywhere users actually land. Small, opt-in footer. #}
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/b15e88c4-14b4-4910-8df2-19845d14efdf/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/b15e88c4-14b4-4910-8df2-19845d14efdf/

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.