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.
262 of your 522 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.
Upstream (GitHub) caused delay on this scan — not Repobility.
  • GitHub API rate-limited (HTTP 403) — preflight skipped, fell back to direct git clone.
  • Clone from GitHub took 427.06s for a 833.3 MB repo slow.
  • Repobility's analysis ran in 75.7s after the clone landed.

yugabyte/yugabyte-db

https://github.com/yugabyte/yugabyte-db · scanned 2026-06-05 22:30 UTC (1 week, 2 days ago) · 10 languages

487 findings 11/13 scanners ran 55th percentile · Java · huge (>500K LoC)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

149 actionable findings from 1 signal source. 338 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 65.0 0.15 9.75
security_score 100.0 0.25 25.00
testing_score 81.0 0.20 16.20
documentation_score 68.0 0.15 10.20
practices_score 83.0 0.15 12.45
code_quality 51.0 0.10 5.10
Overall 1.00 78.7
security_score may be inflated — optional security scanners were skipped on this fast scan
Severity distribution — click a segment to filter
Active filters: layer: quality × excluding tests × Reset all

Showing 30 of 149 actionable findings. 487 raw detector signals were grouped into reader-sized issues. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Security checks quality Quality conf 1.00 ✓ Repobility [MINED107] Missing import: `io` used but not imported: The file uses `io.something(...)` but never imports `io`. This raises NameError at runtime the first time the line executes.
Add `import io` at the top of the file.
src/lint/cpplint.py:5677
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
Add `import platform` at the top of the file.
managed/node-agent/yb_release.py:95
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED002] Dart Null Bang: value! throws on null. Use ?. or null check.
Review and fix per the pattern semantics. See CWE-476 / for context.
managed/project/UIRunHook.scala:34
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED036] Python Os System Call: os.system() invokes shell with no escaping.
Review and fix per the pattern semantics. See CWE-78 / for context.
managed/devops/opscli/ybops/scripts/generateMetadataFiles.py:96
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED040] Python Yaml Load Unsafe: yaml.load(stream) without SafeLoader can deserialize arbitrary classes.
Review and fix per the pattern semantics. See CWE-502 / for context.
build-support/stabilize_auto_flags_list.py:54
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_bulk_load_tool: Test function `test_bulk_load_tool` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:581
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_call_home: Test function `test_call_home` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:564
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_catalog_manager: Test function `test_catalog_manager` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:575
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_file_readable: Test function `test_file_readable` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
managed/devops/opscli/ybops/cloud/onprem/method.py:281
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_flex_bison: Test function `test_flex_bison` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:590
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_master_main: Test function `test_master_main` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:538
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_proto_deps_validity: Test function `test_proto_deps_validity` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:598
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_tablet_server_main: Test function `test_tablet_server_main` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:546
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED106] Phantom test coverage: test_yb_admin: Test function `test_yb_admin` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage without verifying anything.
Add an explicit assertion that captures the test's intent, or remove the test.
python/yugabyte/dependency_graph.py:557
high Security checks quality Quality conf 1.00 ✓ Repobility 25 occurrences [MINED108] `self.parse_heap_file` used but never assigned in __init__: Method `invoke_heap_profile_handler` of class `YBProf` reads `self.parse_heap_file`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance.
Initialize `self.parse_heap_file = <default>` in __init__, or add a class-level default.
2 files, 25 locations
bin/ybcontrol.py:138, 144, 150, 212, 232, 237, 240, 247, +7 more (17 hits)
bin/yb-prof.py:80, 92, 97, 190, 197, 198, 199, 200 (8 hits)
high Security checks quality Quality conf 1.00 [SEC080] Python: tarfile.extractall without filter: tarfile.extract*() without filter='data' allows path-traversal (CVE-2007-4559, fixed via PEP 706 in 3.12). Ported from bandit B202 (Apache-2.0).
Add `filter='data'` (Python ≥ 3.12) or manually validate member paths against `os.path.abspath`.
managed/node-agent/yb_release.py:112
high Security checks quality Quality conf 1.00 [SEC088] Go: TLS InsecureSkipVerify=true: tls.Config{InsecureSkipVerify:true} disables certificate verification — MITM risk. Ported from gosec G402 (Apache-2.0).
Remove the option. If self-signed certs are required, pin via RootCAs.
managed/node-agent/ynp/yba/request.go:45
low Security checks quality Quality conf 1.00 [SEC093] Go: exec.Command with non-literal: exec.Command(<var>) — variable command name allows command injection. Ported from gosec G204 (Apache-2.0).
Use a constant command name and validate args via a whitelist.
managed/node-agent/app/task/module/shell.go:188
medium Security checks quality Quality conf 1.00 ✓ Repobility 13 occurrences [MINED109] Mutable default argument in `change_instance_type` (list): `def change_instance_type(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
Use None as the default and create the collection inside the function: `def change_instance_type(x=None): x = x or []`
8 files, 13 locations
managed/devops/opscli/ybops/cloud/azure/utils.py:747, 863, 890 (3 hits)
src/lint/cpplint.py:6083, 6234, 6367 (3 hits)
python/yugabyte/lto.py:130, 164 (2 hits)
managed/devops/opscli/ybops/cloud/common/command.py:85
managed/devops/opscli/ybops/utils/replicated.py:98
python/yugabyte/download_and_extract_archive.py:128
python/yugabyte/inline_thirdparty.py:239
python/yugabyte/run_tests_on_spark.py:275
medium Security checks quality Quality conf 1.00 ✓ Repobility 7 occurrences [MINED109] Mutable default argument in `run_tool` (dict): `def run_tool(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
Use None as the default and create the collection inside the function: `def run_tool(x=None): x = x or []`
6 files, 7 locations
managed/devops/bin/yb_backup.py:1788, 2298 (2 hits)
managed/devops/opscli/ybops/cloud/azure/utils.py:430
python/ai/rag_agent/html_processing/process_html.py:173
python/ai/rag_agent/pdf_processing/process_pdf.py:186
python/ai/rag_agent/rag_pipeline/partition_chunk_pipeline.py:86
python/yugabyte/yb_dist_tests.py:79
low Security checks quality Error handling conf 0.55 ✓ Repobility 25 occurrences Broad exception handler needs review
This handler catches Exception/BaseException. It is actionable when it swallows errors without logging, re-raising, or returning a structured error. Handlers that intentionally convert exceptions into typed error results should not be treated as high risk.
12 files, 25 locations
managed/devops/opscli/ybops/scripts/generateMetadataFiles.py:67, 87, 111, 140, 168 (5 hits)
managed/node-agent/ybops/node_agent/rpc.py:194, 247, 292, 378 (4 hits)
managed/devops/bin/yb_backup.py:2994, 3650, 4121 (3 hits)
managed/devops/bin/yb_netprob.py:252, 280, 374 (3 hits)
managed/devops/bin/run_node_action.py:431, 449 (2 hits)
managed/devops/opscli/ybops/utils/remote_shell.py:244, 322 (2 hits)
build-support/lint.py:430
managed/devops/bin/yb_platform_util.py:75
Error handlingquality
high Security checks quality Quality conf 0.82 Parallel implementation file sits beside a canonical file
Merge the intended change into the canonical file, update tests/imports, and delete the parallel implementation if it is not the active entry point.
src/postgres/src/include/optimizer/geqo_copy.h:1
high Security checks quality Quality conf 0.82 Parallel implementation file sits beside a canonical file
Merge the intended change into the canonical file, update tests/imports, and delete the parallel implementation if it is not the active entry point.
src/postgres/src/backend/utils/adt/tsquery_rewrite.c:1
medium Security checks quality Quality conf 0.88 sitemap.xml is not valid XML
Regenerate sitemap.xml with valid XML and validate it before deploy.
docs/layouts/sitemap.xml
medium Security checks quality Quality conf 0.78 4 occurrences Suspicious implementation file appears unreferenced
Confirm whether this file is reachable. If not, delete it; if yes, wire it through explicit imports, routes, or entry points and add a test that proves the path executes.
4 files, 4 locations
managed/src/main/java/db/migration/default_/common/V160__Provider_Config_Encryption_Update.java:1
managed/src/main/java/db/migration/default_/common/V289__Universe_Details_Arch_Update.java:1
managed/src/main/java/db/migration/default_/postgres/V195__DB_Encryption_Update.java:1
managed/src/main/java/db/migration/default_/postgres/V417__Add_First_Snapshot_Time_Backup.java:1
low Security checks quality Error handling conf 1.00 [ERR003] Ignored Error (Go): Ignoring error return values.
Handle the error or use errcheck linter.
managed/node-agent/ynp/config/setup_logger.go:61
low Security checks quality Error handling conf 1.00 [ERR003] Ignored Error (Go): Ignoring error return values.
Handle the error or use errcheck linter.
managed/node-agent/app/task/module/download_setup_package.go:23
low Security checks quality Quality conf 0.64 Duplicate top-level symbol appears in a patch-style file
Keep one authoritative implementation, update imports to point at it, and remove or rename the duplicate symbol.
src/yb/yql/cql/ql/ptree/pt_update.h:1
low Security checks quality Quality conf 0.60 27 occurrences Duplicated implementation block across source files
Duplicate implementation blocks are maintenance debt. Keep them visible, but they are not a high-severity defect unless the duplicated logic is security-sensitive or drifting.
12 files, 12 locations
java/yb-client/src/main/java/org/yb/client/CdcSdkCheckpoint.java:15
java/yb-client/src/main/java/org/yb/client/ChangeConfigResponse.java:8
java/yb-client/src/main/java/org/yb/client/ChangeLoadBalancerStateResponse.java:8
java/yb-client/src/main/java/org/yb/client/ChangeMasterClusterConfigResponse.java:9
java/yb-client/src/main/java/org/yb/client/ChangeXClusterRoleResponse.java:8
java/yb-client/src/main/java/org/yb/client/CreateKeyspaceResponse.java:8
java/yb-client/src/main/java/org/yb/client/CreateXClusterReplicationResponse.java:8
java/yb-client/src/main/java/org/yb/client/DeleteSnapshotScheduleResponse.java:8
duplicationquality
high Security checks quality Quality conf 0.62 11 occurrences Source file name looks like an AI patch artifact
Rename it to the domain concept it implements or merge it into the existing module it was meant to change.
11 files, 11 locations
managed/src/main/java/db/migration/default_/common/V160__Provider_Config_Encryption_Update.java:1
managed/src/main/java/db/migration/default_/common/V289__Universe_Details_Arch_Update.java:1
managed/src/main/java/db/migration/default_/postgres/V195__DB_Encryption_Update.java:1
managed/src/main/java/db/migration/default_/postgres/V417__Add_First_Snapshot_Time_Backup.java:1
src/postgres/src/backend/optimizer/geqo/geqo_copy.c:1
src/postgres/src/include/catalog/pg_rewrite.h:1
src/postgres/third-party-extensions/documentdb/pg_documentdb/include/update/bson_update.h:1
src/postgres/third-party-extensions/documentdb/pg_documentdb/src/update/bson_update.c:1
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/1ef6c72a-4ac4-42c5-8abb-dfdbe54f196e/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/1ef6c72a-4ac4-42c5-8abb-dfdbe54f196e/

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.