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.

google-research/google-research

https://github.com/google-research/google-research.git · scanned 2026-05-16 13:30 UTC (3 weeks, 3 days ago) · 10 languages

57 findings 8/10 scanners ran 34th percentile · Python · medium (20-100K LoC)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

14 actionable findings from 1 signal source. 37 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-17-v4 calibration-aware
Component Sub-score Weight Contribution
structure_score 40.0 0.15 6.00
security_score 55.5 0.25 13.88
testing_score 13.0 0.20 2.60
documentation_score 65.0 0.15 9.75
practices_score 30.0 0.15 4.50
code_quality 80.0 0.10 8.00
Overall 1.00 44.7
Calibrated penalty buckets (security_score): threat: 44.6
security_score may be inflated — optional scanners skipped due to repo size/fast scan
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

Showing 8 of 14 actionable findings. 51 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 security Injection conf 0.85 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection.
Use parameterized queries: cursor.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.
CardBench_zero_shot_cardinality_training/calculate_statistics_library/calculate_and_write_frequent_words.py:56
high Security checks 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.
aav/model_training/train.py:276
high Security checks 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.
aav/util/inference_utils.py:67
medium Security checks quality Practices conf 1.00 [CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.
Add a .gitignore appropriate for your language/framework.
low Security checks security Deserialization conf 1.00 3 occurrences [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data.
3 files, 3 locations
abps/py_hashed_replay_buffer.py:71
abstract_nas/utils.py:118
caltrain/glm_modeling/__init__.py:201
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.
CardBench_zero_shot_cardinality_training/generate_queries_library/query_generator_v2.py:1
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.
CardBench_zero_shot_cardinality_training/generate_queries_library/query_generator_v2.py:1
low Security checks quality Quality conf 0.60 30 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, 19 locations
Algorithms_and_Hardness_for_Learning_Linear_Thresholds_from_Label_Proportions/bag_size_4/small_margin_4-sized_LLP-LTF.py:2, 8, 57 (3 hits)
COSTAR/runnables/train_msm.py:36, 40 (2 hits)
COSTAR/runnables/train_multi.py:56, 66 (2 hits)
COSTAR/runnables/train_rep_est.py:34, 39 (2 hits)
COSTAR/src/models/rep_est/CT_utils/encoder.py:11, 104 (2 hits)
COSTAR/src/models/rep_est/rep_est.py:84, 233 (2 hits)
Algorithms_and_Hardness_for_Learning_Linear_Thresholds_from_Label_Proportions/bag_size_3/small_margin_3-sized_LLP-LTF.py:2
Algorithms_and_Hardness_for_Learning_Linear_Thresholds_from_Label_Proportions/bag_size_4/large_margin_4-sized_LLP_LTF.py:2
duplicationquality
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/8ba5a122-fa1d-4a9d-831d-3ed49b469a3b/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/8ba5a122-fa1d-4a9d-831d-3ed49b469a3b/

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.