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.

xr843/fojin

https://github.com/xr843/fojin.git · scanned 2026-05-16 02:11 UTC (2 weeks, 6 days ago) · 10 languages

382 findings (202 legacy + 180 scanner) 52nd percentile · Python · medium (20-100K LoC) Scanner says 64 (lower by 15)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 weeks, 6 days ago · v1 · 194 findings from 1 source. 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-17-v4 calibration-aware
Component Sub-score Weight Contribution
structure_score 40.0 0.15 6.00
security_score 3.0 0.25 0.75
testing_score 47.0 0.20 9.40
documentation_score 98.0 0.15 14.70
practices_score 85.0 0.15 12.75
code_quality 56.5 0.10 5.65
Overall 1.00 49.3
Calibrated penalty buckets (security_score): web: 1.6 · agent: 3.5 · docker: 40.2 · threat: 67.0
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Corpus Intelligence Cross-corpus context (cohort percentile, top patterns, fix plan) is shown only on repositories you own. Sign up and connect your repo to view it.
Scan summary Repository scanned at 64.0/100 with 100.0% coverage. It contains 3326 nodes across 30 cross-layer flows, written primarily in mixed languages. Engine surfaced 0 findings. Risk profile is low: 0 critical, 0 high, 0 medium. Recommended next step: open the software layer findings first — that's where the highest-impact wins live.

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

critical Legacy cicd docker conf 0.96 Compose service contains a literal secret environment value
Literal secrets in Compose files are committed to source and exposed through container inspection.
docker-compose.yml:129 dockerlegacy
critical Legacy cicd docker conf 0.96 Compose service contains a literal secret environment value
Literal secrets in Compose files are committed to source and exposed through container inspection.
docker-compose.yml:68 dockerlegacy
critical Legacy cicd docker conf 0.96 Compose service contains a literal secret environment value
Literal secrets in Compose files are committed to source and exposed through container inspection.
docker-compose.yml:7 dockerlegacy
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0041_reassign_international_source_regions.py:41 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0030_deactivate_unreachable_sources.py:70 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0030_deactivate_unreachable_sources.py:54 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0019_add_source_access_type.py:44 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0074_deactivate_jbf_and_reorder_zojoji.py:37 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0049_fix_down_and_moved_source_urls.py:44 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0049_fix_down_and_moved_source_urls.py:37 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:217 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:210 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:203 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:194 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:187 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:180 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0044_deduplicate_and_fix_data_quality.py:169 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0043_cleanup_candidate_sources.py:133 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0043_cleanup_candidate_sources.py:126 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0046_audit_cleanup_and_new_entries.py:213 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0046_audit_cleanup_and_new_entries.py:120 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0046_audit_cleanup_and_new_entries.py:109 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:46 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:39 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0042_set_null_region_sources.py:43 injectionlegacy sql-string-concat · CWE-89 · A03:2021
critical Legacy security injection conf 0.85 SQL Injection — string-concat or f-string into execute()
cursor.execute(f"... {user_input} ...") — SQL injection.
backend/alembic/versions/0042_set_null_region_sources.py:34 injectionlegacy sql-string-concat · CWE-89 · A03:2021
high Legacy security injection conf 1.00 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
Use parameterized queries: op.execute('SELECT * FROM t WHERE id = %s', [id]). For dynamic table or column names, choose identifiers from a hard-coded allowlist and keep values in parameters.
backend/alembic/versions/0045_add_new_sources_tier1_tier2.py:159 injectionlegacy
high Legacy security injection conf 1.00 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
Use parameterized queries: op.execute('SELECT * FROM t WHERE id = %s', [id]). For dynamic table or column names, choose identifiers from a hard-coded allowlist and keep values in parameters.
backend/alembic/versions/0043_cleanup_candidate_sources.py:119 injectionlegacy
high Legacy security injection conf 1.00 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
Use parameterized queries: op.execute('SELECT * FROM t WHERE id = %s', [id]). For dynamic table or column names, choose identifiers from a hard-coded allowlist and keep values in parameters.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:39 injectionlegacy
high Legacy security path_traversal conf 0.80 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads.
backend/scripts/import_suttacentral_places.py:66 path_traversallegacy
high Legacy security path_traversal conf 0.80 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads.
backend/scripts/enrich_active_in_places.py:185 path_traversallegacy
high Legacy security path_traversal conf 0.80 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads.
backend/scripts/import_east_asian_temples.py:38 path_traversallegacy
high Legacy quality error_handling conf 0.85 Bare except: pass — silent failure
except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
backend/scripts/init_es_index.py:56 error_handlinglegacy bare-except-pass · CWE-755
high Legacy quality error_handling conf 0.85 Bare except: pass — silent failure
except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
backend/scripts/base_importer.py:264 error_handlinglegacy bare-except-pass · CWE-755
high Legacy software race_condition conf 0.85 Concurrency — blocking call inside asyncio coroutine
requests.get / time.sleep / open().read inside async def — blocks the event loop.
backend/app/services/dify_retrieval.py:21 race_conditionlegacy asyncio-blocking-call · CWE-833
high Legacy security crypto conf 0.85 Crypto — TLS verification disabled
verify=False in requests, rejectUnauthorized:false in node, InsecureSkipVerify:true in Go.
backend/scripts/audit_sources.py:71 cryptolegacy disabled-tls-verify · CWE-295 · A02:2021
high Legacy cicd docker conf 0.90 Database service has no persistent data volume
Database containers store data in the writable container layer unless a volume or bind mount is attached to the image's data directory. Recreating the container can lose state.
docker-compose.yml:129 dockerlegacy
high Legacy cicd docker conf 0.84 Database service publishes a host port
Publishing database ports to the host increases exposure. Internal Compose networking usually only needs expose, not ports.
docker-compose.yml:51 dockerlegacy
high Legacy cicd docker conf 0.92 Dockerfile copies the entire context without .dockerignore
COPY . or ADD . sends the full build context to Docker. Without .dockerignore this can include secrets, git history, and local artifacts.
frontend/Dockerfile:6 dockerlegacy
high Legacy cicd docker conf 0.92 Dockerfile copies the entire context without .dockerignore
COPY . or ADD . sends the full build context to Docker. Without .dockerignore this can include secrets, git history, and local artifacts.
backend/Dockerfile:29 dockerlegacy
medium Legacy quality error_handling conf 1.00 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level.
Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types.
backend/scripts/init_es_index.py:56 error_handlinglegacy
medium Legacy quality error_handling conf 1.00 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level.
Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types.
backend/scripts/fetch_korean_hanja.py:43 error_handlinglegacy
medium Legacy quality error_handling conf 1.00 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level.
Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types.
backend/app/main.py:321 error_handlinglegacy
medium Legacy quality error_handling conf 1.00 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
Log the error or rethrow it. Use console.error() at minimum.
frontend/src/components/Layout.tsx:66 error_handlinglegacy
medium Legacy quality error_handling conf 1.00 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
Log the error or rethrow it. Use console.error() at minimum.
frontend/src/components/NotificationBell.tsx:26 error_handlinglegacy
medium Legacy quality error_handling conf 1.00 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
Log the error or rethrow it. Use console.error() at minimum.
frontend/src/pages/CollectionsPage.tsx:209 error_handlinglegacy
medium Legacy security path_traversal conf 1.00 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation allows writing files outside the target directory.
Validate extracted paths with os.path.realpath() and ensure they stay within the target directory.
backend/scripts/import_dpd.py:184 path_traversallegacy
medium Legacy security crypto conf 1.00 [SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks.
Enable SSL verification. Use verify=True (default) for requests. Pin certificates if needed.
backend/scripts/audit_sources.py:71 cryptolegacy
high Legacy quality quality conf 0.72 Agent control bridge may listen on a network interface without visible auth
Agent, MCP, sidecar, and command bridge servers often start as local helpers. Binding them to 0.0.0.0 or a default all-interface listener without an authorization guard can expose tool execution or session data to the LAN.
backend/entrypoint.sh:13 qualitylegacy
medium Legacy software race_condition conf 0.85 Concurrency — TOCTOU race via os.path.exists+open
if os.path.exists(p): open(p) — file can be replaced/deleted between check and use.
backend/scripts/download_sc_data.py:52 race_conditionlegacy toctou-os-path-exists · CWE-367
medium Legacy software race_condition conf 0.85 Concurrency — TOCTOU race via os.path.exists+open
if os.path.exists(p): open(p) — file can be replaced/deleted between check and use.
backend/scripts/download_sc_data.py:38 race_conditionlegacy toctou-os-path-exists · CWE-367
medium Legacy software race_condition conf 0.85 Concurrency — TOCTOU race via os.path.exists+open
if os.path.exists(p): open(p) — file can be replaced/deleted between check and use.
backend/scripts/import_content.py:50 race_conditionlegacy toctou-os-path-exists · CWE-367
medium Legacy security auth conf 0.85 CORS misconfiguration — wildcard Access-Control-Allow-Origin
Access-Control-Allow-Origin: * exposes the API to any browser origin. Acceptable for public read-only endpoints; dangerous when paired with credentials or write endpoints.
backend/app/main.py:75 authlegacy cors-wildcard · CWE-942 · A05:2021
medium Legacy security auth conf 0.85 CORS misconfiguration — wildcard Access-Control-Allow-Origin
Access-Control-Allow-Origin: * exposes the API to any browser origin. Acceptable for public read-only endpoints; dangerous when paired with credentials or write endpoints.
backend/app/main.py:69 authlegacy cors-wildcard · CWE-942 · A05:2021
medium Legacy security injection conf 0.85 Cross-site scripting — dangerouslySetInnerHTML
dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
frontend/src/components/search/ContentCard.tsx:51 injectionlegacy react-dangerously-set-html · CWE-79 · A03:2021
medium Legacy security injection conf 0.85 Cross-site scripting — dangerouslySetInnerHTML
dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
frontend/src/components/search/ContentCard.tsx:33 injectionlegacy react-dangerously-set-html · CWE-79 · A03:2021
medium Legacy security injection conf 0.85 Cross-site scripting — dangerouslySetInnerHTML
dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
frontend/src/components/search/ResultCard.tsx:41 injectionlegacy react-dangerously-set-html · CWE-79 · A03:2021
medium Legacy security injection conf 0.85 Cross-site scripting — dangerouslySetInnerHTML
dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
frontend/src/components/search/ResultCard.tsx:19 injectionlegacy react-dangerously-set-html · CWE-79 · A03:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0058_expand_mainland_topic_buddhist_sources.py:153 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0058_expand_mainland_topic_buddhist_sources.py:136 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0058_expand_mainland_topic_buddhist_sources.py:82 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0057_add_mainland_buddhist_sources.py:135 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0057_add_mainland_buddhist_sources.py:44 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0062_fix_canon_source_urls.py:30 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0062_fix_canon_source_urls.py:26 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0062_fix_canon_source_urls.py:21 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0022_seed_research_sources.py:367 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0022_seed_research_sources.py:357 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0022_seed_research_sources.py:226 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0060_add_tripitaka_canon_sources.py:154 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0084_add_vietnam_southeast_asia_sources.py:65 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0047_fix_lancaster_catalog_url.py:20 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0049_fix_down_and_moved_source_urls.py:31 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0049_fix_down_and_moved_source_urls.py:30 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0092_fix_dharmamitra_conflict.py:82 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:73 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:52 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:46 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:32 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:31 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:28 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:27 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:25 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:21 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0018_seed_global_sources.py:19 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:215 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:188 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:176 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:164 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:137 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:122 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:98 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:83 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:59 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0033_import_google_discovered_sources.py:289 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0033_import_google_discovered_sources.py:213 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0033_import_google_discovered_sources.py:182 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0043_cleanup_candidate_sources.py:36 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:30 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:29 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:28 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:27 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:26 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:25 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0048_fix_https_only_and_stale_urls.py:4 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0016_seed_data_sources.py:52 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:392 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:336 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:318 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:299 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:281 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:245 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:227 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:209 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0082_add_bookmark_sources_batch2.py:45 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0023_fix_urls_add_sources_upgrade_types.py:26 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0081_add_bookmark_sources.py:315 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0081_add_bookmark_sources.py:281 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.45 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/alembic/versions/0081_add_bookmark_sources.py:60 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/extract_structured_kg.py:599 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/import_soothill.py:73 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/import_hopkins.py:73 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/import_dila_dict.py:26 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/import_ddb.py:44 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/scripts/import_ddb.py:24 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/core/xml_parser.py:16 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/core/xml_parser.py:15 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/core/tei_84000_parser.py:67 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/core/tei_84000_parser.py:25 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/api/exports.py:205 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/api/exports.py:204 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
backend/app/api/exports.py:202 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:121 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:120 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:91 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:81 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:74 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:65 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:64 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:36 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:34 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
frontend/src/config/searchPatterns.json:13 cryptolegacy http-not-https · CWE-319 · A02:2021
high Legacy security crypto conf 0.85 Crypto — plaintext HTTP for sensitive endpoint
Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
docker-compose.yml:84 cryptolegacy http-not-https · CWE-319 · A02:2021
medium Legacy cicd docker conf 0.90 Docker build context has no .dockerignore
Without .dockerignore, build context can include source history, local env files, dependencies, and generated artifacts.
.dockerignore dockerlegacy
high Legacy cicd docker conf 0.82 Docker final stage has no non-root USER
Docker images run as root unless the image or Dockerfile switches to a non-root user.
elasticsearch/Dockerfile:1 dockerlegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0054_ensure_openpecha_source_exists.py:80 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0054_ensure_openpecha_source_exists.py:45 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0046_audit_cleanup_and_new_entries.py:166 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0034_import_comprehensive_global_sources.py:212 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0013_add_research_notes.py:26 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0013_add_research_notes.py:24 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0012_add_annotations.py:36 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0012_add_annotations.py:34 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations.
backend/alembic/versions/0009_add_ocr_pipeline.py:30 qualitylegacy
high Legacy software test_quality conf 0.85 Function is stub-only (pass/raise NotImplementedError)
Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
backend/alembic/versions/0079_normalize_language_codes.py:74 test_qualitylegacy stub-only-function · CWE-1188
high Legacy quality quality conf 0.80 localStorage write failures are swallowed silently
localStorage quotas are small and writes can fail. Catching storage errors without a user-visible warning causes silent data loss when notes, images, or snapshots exceed quota.
frontend/src/pages/TextReaderPage.tsx:599 qualitylegacy
high Legacy quality quality conf 0.80 localStorage write failures are swallowed silently
localStorage quotas are small and writes can fail. Catching storage errors without a user-visible warning causes silent data loss when notes, images, or snapshots exceed quota.
frontend/src/pages/ChatPage.tsx:267 qualitylegacy
high Legacy quality quality conf 0.85 Magic number used as default arg
Using hardcoded default values for complex configuration objects makes the code brittle and difficult to manage. Consider using a dedicated factory or builder pattern. Auto-promoted from proposal 444 on 2026-05-12. Synth confidence: 0.85. FP estimate: 0.00.
backend/alembic/versions/0059_add_sort_order_and_cleanup.py:19 qualitylegacy magic-number-default
high Legacy quality quality conf 0.82 Parallel implementation file sits beside a canonical file
AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app.
backend/scripts/import_amap_temples_v3.py:1 qualitylegacy
high Legacy quality quality conf 0.82 Parallel implementation file sits beside a canonical file
AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app.
backend/scripts/fetch_amap_temples_v3.py:1 qualitylegacy
high Legacy quality quality conf 0.82 Parallel implementation file sits beside a canonical file
AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app.
backend/scripts/fetch_amap_temples_v2.py:1 qualitylegacy
high Legacy quality quality conf 0.82 Parallel implementation file sits beside a canonical file
AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app.
backend/scripts/enrich_dynasty_coords_v2.py:1 qualitylegacy
high Legacy quality quality conf 0.82 Parallel implementation file sits beside a canonical file
AI-assisted edits often create a new sibling file instead of integrating the change into the existing module. That leaves two paths for future maintainers to understand and can hide the code that is actually wired into the app.
backend/scripts/backfill_person_coords_v2.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Public web service has no security.txt
security.txt gives researchers and customers a safe disclosure channel. Public web apps and APIs should publish it under /.well-known/security.txt.
.well-known/security.txt qualitylegacy
high Legacy software supply_chain conf 0.85 Supply chain — npm install without lockfile
Production image runs npm install (resolves new versions on every build) instead of npm ci.
backend/Dockerfile:10 supply_chainlegacy npm-install-no-lockfile · CWE-1357 · A06:2021
high Legacy software supply_chain conf 0.85 Supply chain — npm install without lockfile
Production image runs npm install (resolves new versions on every build) instead of npm ci.
frontend/Dockerfile:5 supply_chainlegacy npm-install-no-lockfile · CWE-1357 · A06:2021
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/validate_persons_v2.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/import_amap_temples_v3.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/fetch_amap_temples_v3.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/fetch_amap_temples_v2.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/enrich_dynasty_coords_v2.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/cleanup_noise_v2.py:1 qualitylegacy
medium Legacy quality quality conf 0.78 Suspicious implementation file appears unreferenced
A file created as a fixed/new/final/copy variant is not referenced by imports or path-like strings in the rest of the repository. This is a strong sign that an agent produced code beside the active application path.
backend/scripts/backfill_person_coords_v2.py:1 qualitylegacy
high Legacy cicd docker conf 0.56 Compose service does not declare a runtime user
If the image does not define USER internally, this service may run as root.
docker-compose.yml:151 dockerlegacy
high Legacy cicd docker conf 0.56 Compose service does not declare a runtime user
If the image does not define USER internally, this service may run as root.
docker-compose.yml:68 dockerlegacy
high Legacy cicd docker conf 0.56 Compose service does not declare a runtime user
If the image does not define USER internally, this service may run as root.
docker-compose.yml:28 dockerlegacy
high Legacy cicd docker conf 0.56 Compose service does not declare a runtime user
If the image does not define USER internally, this service may run as root.
docker-compose.yml:7 dockerlegacy
high Legacy cicd docker conf 0.62 Compose service lacks no-new-privileges hardening
no-new-privileges prevents processes from gaining additional privileges through setuid binaries or file capabilities.
docker-compose.yml:151 dockerlegacy
high Legacy cicd docker conf 0.62 Compose service lacks no-new-privileges hardening
no-new-privileges prevents processes from gaining additional privileges through setuid binaries or file capabilities.
docker-compose.yml:68 dockerlegacy
low Legacy cicd docker conf 0.58 Database service publishes a loopback host port
Publishing database ports to the host increases exposure. Internal Compose networking usually only needs expose, not ports.
docker-compose.yml:129 dockerlegacy
low Legacy quality quality conf 0.64 Duplicate top-level symbol appears in a patch-style file
A generated replacement file defining the same public function or class name as another module can mean the new logic is not actually wired into the running code.
backend/scripts/fetch_amap_temples_v2.py:1 qualitylegacy
low Legacy quality quality conf 0.85 Placeholder default username (admin/admin)
[email protected] / [email protected] / admin/admin / changeme — typical AI placeholder credentials.
docker-compose.yml:87 qualitylegacy placeholder-default-username · CWE-1392
high Legacy quality quality conf 0.62 Source file name looks like an AI patch artifact
Files named as final, fixed, copy, new, or backup are often temporary patch artifacts. They may be legitimate, but they deserve review before becoming production surface area.
backend/scripts/validate_persons_v2.py:1 qualitylegacy
high Legacy quality quality conf 0.62 Source file name looks like an AI patch artifact
Files named as final, fixed, copy, new, or backup are often temporary patch artifacts. They may be legitimate, but they deserve review before becoming production surface area.
backend/scripts/cleanup_noise_v2.py:1 qualitylegacy
high Legacy quality quality conf 0.62 Source file name looks like an AI patch artifact
Files named as final, fixed, copy, new, or backup are often temporary patch artifacts. They may be legitimate, but they deserve review before becoming production surface area.
backend/scripts/cleanup_final.py:1 qualitylegacy
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/42747e40-840f-4f7f-95d6-8422159cbe2e/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/42747e40-840f-4f7f-95d6-8422159cbe2e/

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.