CRIT
SEC022
[SEC022] Database URL With Embedded Credential: A database connection URL contains an emb…
backend/scripts/convert_korean_strict.py:230
CRIT
SEC022
[SEC022] Database URL With Embedded Credential: A database connection URL contains an emb…
backend/scripts/backfill_person_coords_…:113
CRIT
SEC022
[SEC022] Database URL With Embedded Credential: A database connection URL contains an emb…
backend/scripts/import_amap_temples_v3.…:7
CRIT
DKC007
Compose service contains a literal secret environment value
docker-compose.yml:129
CRIT
DKC007
Compose service contains a literal secret environment value
docker-compose.yml:68
CRIT
DKC007
Compose service contains a literal secret environment value
docker-compose.yml:7
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0041_reassign_…:41
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0030_deactivat…:70
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0030_deactivat…:54
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0019_add_sourc…:44
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0074_deactivat…:37
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0049_fix_down_…:44
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0049_fix_down_…:37
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:217
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:210
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:203
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:194
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:187
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:180
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0044_deduplica…:169
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0043_cleanup_c…:133
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0043_cleanup_c…:126
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0046_audit_cle…:213
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0046_audit_cle…:120
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0046_audit_cle…:109
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0048_fix_https…:46
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0048_fix_https…:39
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0042_set_null_…:43
CRIT
SQLI001
SQL Injection — string-concat or f-string into execute()
backend/alembic/versions/0042_set_null_…:34
HIGH
SEC004
[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
backend/alembic/versions/0045_add_new_s…:159
HIGH
SEC004
[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
backend/alembic/versions/0043_cleanup_c…:119
HIGH
SEC004
[SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
backend/alembic/versions/0048_fix_https…:39
HIGH
DKR014
Dockerfile copies the entire context without .dockerignore
frontend/Dockerfile:6
HIGH
DKR014
Dockerfile copies the entire context without .dockerignore
backend/Dockerfile:29
HIGH
DKC013
Database service has no persistent data volume
docker-compose.yml:129
HIGH
TEST001
Phantom test coverage — test files without real assertions
backend/tests/test_config.py:40
HIGH
ERRH001
Bare except: pass — silent failure
backend/scripts/init_es_index.py:56
HIGH
ERRH001
Bare except: pass — silent failure
backend/scripts/base_importer.py:264
HIGH
CRYP006
Crypto — TLS verification disabled
backend/scripts/audit_sources.py:71
HIGH
CONC001
Concurrency — blocking call inside asyncio coroutine
backend/app/services/dify_retrieval.py:21
HIGH
DKC011
Database service publishes a host port
docker-compose.yml:51
HIGH
SEC013
[SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat…
backend/scripts/import_suttacentral_pla…:66
HIGH
SEC013
[SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat…
backend/scripts/enrich_active_in_places…:185
HIGH
SEC013
[SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat…
backend/scripts/import_east_asian_templ…:38
MED
SEC014
[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing ma…
backend/scripts/audit_sources.py:71
MED
SEC012
[SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all…
backend/scripts/import_dpd.py:184
MED
ERR001
[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even…
backend/scripts/init_es_index.py:56
MED
ERR001
[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even…
backend/scripts/fetch_korean_hanja.py:43
MED
ERR001
[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even…
backend/app/main.py:321
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
frontend/src/components/Layout.tsx:66
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
frontend/src/components/NotificationBel…:26
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
frontend/src/pages/CollectionsPage.tsx:209
MED
DKR007
Docker build context has no .dockerignore
.dockerignore
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0054_ensure_op…:80
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0054_ensure_op…:45
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0053_add_more_…:264
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0053_add_more_…:226
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0052_add_speci…:274
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0046_audit_cle…:166
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0034_import_co…:212
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0013_add_resea…:26
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0013_add_resea…:24
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0012_add_annot…:36
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0012_add_annot…:34
MED
AIC003
Duplicated implementation block across source files
backend/alembic/versions/0009_add_ocr_p…:30
MED
QUAL003
Magic number used as default arg
backend/alembic/versions/0059_add_sort_…:19
MED
TEST002
Function is stub-only (pass/raise NotImplementedError)
backend/alembic/versions/0079_normalize…:74
MED
CONC002
Concurrency — TOCTOU race via os.path.exists+open
backend/scripts/download_sc_data.py:52
MED
CONC002
Concurrency — TOCTOU race via os.path.exists+open
backend/scripts/download_sc_data.py:38
MED
CONC002
Concurrency — TOCTOU race via os.path.exists+open
backend/scripts/import_content.py:50
MED
CORS001
CORS misconfiguration — wildcard Access-Control-Allow-Origin
backend/app/main.py:75
MED
CORS001
CORS misconfiguration — wildcard Access-Control-Allow-Origin
backend/app/main.py:69
MED
SUPC002
Supply chain — npm install without lockfile
backend/Dockerfile:10
MED
SUPC002
Supply chain — npm install without lockfile
frontend/Dockerfile:5
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/extract_structured_kg.py:599
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/import_soothill.py:73
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/import_hopkins.py:73
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/import_dila_dict.py:26
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/import_ddb.py:44
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/scripts/import_ddb.py:24
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/core/xml_parser.py:16
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/core/xml_parser.py:15
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/core/tei_84000_parser.py:67
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/core/tei_84000_parser.py:25
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/api/exports.py:205
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/api/exports.py:204
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/app/api/exports.py:202
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:121
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:120
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:91
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:81
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:74
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:65
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:64
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:36
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:34
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
frontend/src/config/searchPatterns.json:13
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
docker-compose.yml:84
MED
XSS001
Cross-site scripting — dangerouslySetInnerHTML
frontend/src/components/search/ContentC…:51
MED
XSS001
Cross-site scripting — dangerouslySetInnerHTML
frontend/src/components/search/ContentC…:33
MED
XSS001
Cross-site scripting — dangerouslySetInnerHTML
frontend/src/components/search/ResultCa…:41
MED
XSS001
Cross-site scripting — dangerouslySetInnerHTML
frontend/src/components/search/ResultCa…:19
MED
DKR001
Docker final stage has no non-root USER
elasticsearch/Dockerfile:1
MED
AIC001
Parallel implementation file sits beside a canonical file
backend/scripts/import_amap_temples_v3.…:1
MED
AIC001
Parallel implementation file sits beside a canonical file
backend/scripts/fetch_amap_temples_v3.py:1
MED
AIC001
Parallel implementation file sits beside a canonical file
backend/scripts/fetch_amap_temples_v2.py:1
MED
AIC001
Parallel implementation file sits beside a canonical file
backend/scripts/enrich_dynasty_coords_v…:1
MED
AIC001
Parallel implementation file sits beside a canonical file
backend/scripts/backfill_person_coords_…:1
MED
AGT007
localStorage write failures are swallowed silently
frontend/src/pages/TextReaderPage.tsx:599
MED
AGT007
localStorage write failures are swallowed silently
frontend/src/pages/ChatPage.tsx:267
MED
WEB003
Public web service has no security.txt
.well-known/security.txt
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/validate_persons_v2.py:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/import_amap_temples_v3.…:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/fetch_amap_temples_v3.py:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/fetch_amap_temples_v2.py:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/enrich_dynasty_coords_v…:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/cleanup_noise_v2.py:1
MED
AIC004
Suspicious implementation file appears unreferenced
backend/scripts/backfill_person_coords_…:1
MED
AGT012
Agent control bridge may listen on a network interface without visible auth
backend/entrypoint.sh:13
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0058_expand_ma…:153
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0058_expand_ma…:136
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0058_expand_ma…:82
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0057_add_mainl…:135
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0057_add_mainl…:44
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0062_fix_canon…:30
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0062_fix_canon…:26
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0062_fix_canon…:21
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0022_seed_rese…:367
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0022_seed_rese…:357
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0022_seed_rese…:226
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0060_add_tripi…:154
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0084_add_vietn…:65
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0047_fix_lanca…:20
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0049_fix_down_…:31
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0049_fix_down_…:30
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0092_fix_dharm…:82
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:73
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:52
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:46
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:32
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:31
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:28
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:27
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:25
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:21
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0018_seed_glob…:19
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:215
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:188
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:176
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:164
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:137
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:122
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:98
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:83
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0034_import_co…:59
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0033_import_go…:289
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0033_import_go…:213
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0033_import_go…:182
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0043_cleanup_c…:36
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:30
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:29
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:28
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:27
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:26
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:25
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0048_fix_https…:4
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0016_seed_data…:52
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:392
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:336
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:318
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:299
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:281
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:245
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:227
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:209
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0082_add_bookm…:45
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0023_fix_urls_…:26
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0081_add_bookm…:315
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0081_add_bookm…:281
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/alembic/versions/0081_add_bookm…:60
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/tests/conftest.py:78
MED
CRYP001
Crypto — plaintext HTTP for sensitive endpoint
backend/tests/test_kg.py:65
LOW
QUAL004
Placeholder default username (admin/admin)
docker-compose.yml:87
LOW
AIC005
Duplicate top-level symbol appears in a patch-style file
backend/scripts/fetch_amap_temples_v2.py:1
LOW
DKC010
Compose service lacks no-new-privileges hardening
docker-compose.yml:151
LOW
DKC010
Compose service lacks no-new-privileges hardening
docker-compose.yml:68
LOW
AIC002
Source file name looks like an AI patch artifact
backend/scripts/validate_persons_v2.py:1
LOW
AIC002
Source file name looks like an AI patch artifact
backend/scripts/cleanup_noise_v2.py:1
LOW
AIC002
Source file name looks like an AI patch artifact
backend/scripts/cleanup_final.py:1
LOW
DKC011
Database service publishes a loopback host port
docker-compose.yml:129
LOW
DKC006
Compose service does not declare a runtime user
docker-compose.yml:151
LOW
DKC006
Compose service does not declare a runtime user
docker-compose.yml:68
LOW
DKC006
Compose service does not declare a runtime user
docker-compose.yml:28
LOW
DKC006
Compose service does not declare a runtime user
docker-compose.yml:7