← Back to scan
File as GitHub Issue repo: cocoindex-io/cocoindex

Push this scan report to cocoindex-io/cocoindex

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Database URL With Embedded Credential

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT SECR004 Password embedded in URL examples/postgres_source/prepare_source…:2
CRIT DSER001 Insecure deserialization — pickle/yaml/marshal python/cocoindex/subprocess_exec.py:203
CRIT SEC022 [SEC022] Database URL With Embedded Credential: A database connection URL contains an emb… examples/entire_session_search/main.py:44
CRIT SEC022 [SEC022] Database URL With Embedded Credential: A database connection URL contains an emb… examples/code_embedding/main.py:37
CRIT SEC022 [SEC022] Database URL With Embedded Credential: A database connection URL contains an emb… examples/audio_to_text/main.py:25
HIGH QUAL007 Imported but never used /tank0/claude-archive/opus47/cocoindex-…:5
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:1450
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:1411
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:1290
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:1261
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:90
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:74
HIGH QUAL006 Floats used for monetary values python/cocoindex/tests/test_engine_valu…:43
HIGH QUAL006 Floats used for monetary values examples/product_recommendation/main.py:86
HIGH QUAL006 Floats used for monetary values examples/product_recommendation/main.py:47
HIGH QUAL006 Floats used for monetary values examples/postgres_source/main.py:16
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/targets/test_dor…:265
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:666
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:660
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:654
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:484
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:401
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:390
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:340
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:331
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:326
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_engine_valu…:291
HIGH TEST001 Phantom test coverage — test files without real assertions python/cocoindex/tests/test_validation.…:80
HIGH ERRH003 except BaseException — catches SystemExit/KeyboardInterrupt python/cocoindex/runtime.py:65
HIGH ERRH003 except BaseException — catches SystemExit/KeyboardInterrupt examples/live_updates/main.py:48
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/subprocess_exec.py:145
HIGH SUPC001 Supply chain — curl | bash anti-pattern examples/sec_edgar_analytics/docker-com…:6
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. python/cocoindex/connectors/postgres/_s…:132
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. python/cocoindex/connectors/doris/_targ…:696
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/targets/test_dor…:3160
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/targets/test_dor…:1826
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/targets/test_dor…:1630
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/targets/test_dor…:1563
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/test_optional_da…:232
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/test_optional_da…:224
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/test_optional_da…:36
HIGH ERRH001 Bare except: pass — silent failure python/cocoindex/tests/test_optional_da…:28
MED SEC007 [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code. python/cocoindex/_internal/function.py:1069
MED SEC007 [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code. python/cocoindex/_internal/runner.py:173
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… python/cocoindex/connectors/qdrant/_tar…:339
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… python/cocoindex/_internal/runner.py:138
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… python/cocoindex/_internal/environment.…:533
MED AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks…
MED AIC003 Duplicated implementation block across source files python/cocoindex/setting.py:7
MED AIC003 Duplicated implementation block across source files python/cocoindex/connectors/turbopuffer…:340
MED AIC003 Duplicated implementation block across source files python/cocoindex/connectors/neo4j/_cyph…:90
MED QUAL003 Magic number used as default arg python/cocoindex/validation.py:32
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/engine_object.py:101
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/engine_object.py:99
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/typing.py:53
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/typing.py:52
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/setting.py:177
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/setting.py:173
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/engine_type.py:428
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/engine_type.py:424
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/lib.py:32
MED TEST002 Function is stub-only (pass/raise NotImplementedError) python/cocoindex/lib.py:30
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:776
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:775
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:773
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:771
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:770
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:769
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:729
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:668
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:652
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/cli.py:560
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:180
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:177
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:173
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:167
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:165
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin python/cocoindex/setting.py:156
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin rust/cocoindex/src/server.rs:27
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin rust/cocoindex/src/server.rs:25
MED CORS001 CORS misconfiguration — wildcard Access-Control-Allow-Origin rust/cocoindex/src/server.rs:16
MED SUPC002 Supply chain — npm install without lockfile examples/fastapi_server_docker/dockerfi…:13
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint rust/cocoindex/src/server.rs:91
MED AUC002 [AUC002] Low visible authorization coverage in route inventory: Only 0.0% of discovered r…
MED AGT015 Remote install command pipes network code directly to a shell docs/src/content/docs/contributing/setu…:17
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint examples/image_search/frontend/src/App.…:45
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint examples/image_search/frontend/src/App.…:3
LOW WEB005 robots.txt does not advertise a sitemap docs/public/robots.txt
Reset to top 5 88 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `cocoindex-io/cocoindex`

**Score: 82/100 (A-)**  ·  93 findings  ·  scanned 2026-05-15 03:47 UTC  ·  86,110 LOC

| Severity | Count |
|---|---|
| CRITICAL | 5 |
| HIGH | 37 |
| MEDIUM | 45 |
| LOW | 1 |

📊 [Full filterable report](https://repobility.com/scan/ecebda09-0cac-4f20-b198-ea898eaf9be2/)  ·  ![scorecard](https://repobility.com/scan/ecebda09-0cac-4f20-b198-ea898eaf9be2/report.png?v=1778816846-s2)

### Top findings

1. **CRITICAL** `SECR004` — Password embedded in URL
   `examples/postgres_source/prepare_source_data.sql:2`
2. **CRITICAL** `DSER001` — Insecure deserialization — pickle/yaml/marshal
   `python/cocoindex/subprocess_exec.py:203`
3. **CRITICAL** `SEC022` — Database URL With Embedded Credential
   `examples/entire_session_search/main.py:44` · A07:2021 Identification & Authentication Failures
4. **CRITICAL** `SEC022` — Database URL With Embedded Credential
   `examples/code_embedding/main.py:37` · A07:2021 Identification & Authentication Failures
5. **CRITICAL** `SEC022` — Database URL With Embedded Credential
   `examples/audio_to_text/main.py:25` · A07:2021 Identification & Authentication Failures

---

**Security note**: this issue is public. If any flagged finding is a real, exploitable vulnerability, please redirect to your `SECURITY.md` policy or open a [private security advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) instead. We're happy to close this and re-submit privately.

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/ecebda09-0cac-4f20-b198-ea898eaf9be2/_
Already filed
This repo publishes a SECURITY.md policy and the scan contains 6 Critical/High security finding(s). Public issue filing would violate coordinated disclosure. Submit privately via the project's security reporting channel.
Megaproject â high spam risk
Could not determine 'cocoindex-io/cocoindex' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.
Already filed
42/93 findings (45%) on this scan are already flagged as test-file, won't-fix, or suppressed. The scan is too noisy to file as a single issue. Curate down to specific actionable findings, or address the FP source first.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.