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.
198 of your 312 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 133.97s for a 675.1 MB repo slow.
  • Repobility's analysis ran in 113.26s after the clone landed.

dotnet/runtime

https://github.com/dotnet/runtime · scanned 2026-06-05 19:50 UTC (4 days, 14 hours ago) · 10 languages

859 raw signals (293 security + 566 graph) 11/13 scanners ran 50th percentile · Csharp · huge (>500K LoC) System graph score 76 (higher by 3)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 4 days, 14 hours ago · v2 · 326 actionable findings from 2 signal sources. 247 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
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 80.0 0.20 16.00
documentation_score 96.0 0.15 14.40
practices_score 77.0 0.15 11.55
code_quality 25.0 0.10 2.50
Overall 1.00 79.2
security_score may be inflated — optional security scanners were skipped on this fast scan
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Scan summary Quality grade B+ (79/100). Dimensions: security 100, maintainability 65. 293 findings (90 security). 14,932,384 lines analyzed.

Showing 210 of 326 actionable findings. 573 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 25 occurrences [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.
12 files, 22 locations
src/coreclr/scripts/superpmi_diffs_setup.py:40, 225, 282, 347 (4 hits)
src/coreclr/scripts/superpmi_aspnet.py:28, 136, 250 (3 hits)
src/coreclr/scripts/antigen_run.py:33, 232 (2 hits)
src/coreclr/scripts/fuzzer_setup.py:30, 163 (2 hits)
src/coreclr/scripts/fuzzlyn_run.py:38, 242 (2 hits)
src/coreclr/scripts/genDummyProvider.py:144, 172 (2 hits)
src/coreclr/scripts/superpmi_asmdiffs_checked_release_setup.py:31, 129 (2 hits)
src/coreclr/scripts/fuzzlyn_summarize.py:249
low Security checks cicd CI/CD security conf 0.35 ✓ Repobility 25 occurrences Workflow references repository secrets in a pull_request workflow
Fork pull_request runs do not receive normal repository secrets on GitHub Actions. Review this as a reliability/intent signal, not as direct fork-secret exfiltration. Raise severity only for pull_request_target or another trusted-context path that runs untrusted PR code with secrets.
lines 417, 419, 435, 436, 625, 745, 797, 798, +17 more
.github/workflows/code-review.lock.yml:417, 419, 435, 436, 625, 745, 797, 798, +17 more (25 hits)
CI/CD securityworkflow secretsGitHub Actions
high Security checks quality Quality conf 1.00 ✓ Repobility [MINED017] C System Call: system() invokes shell. command injection if any arg is dynamic.
Review and fix per the pattern semantics. See CWE-78 / for context.
src/coreclr/binder/defaultassemblybinder.cpp:219
high Security checks quality Quality conf 1.00 ✓ Repobility 22 occurrences [MINED108] `self._header` used but never assigned in __init__: Method `generate` of class `ReportGenerator` reads `self._header`, 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._header = <default>` in __init__, or add a class-level default.
3 files, 22 locations
src/mono/mono/offsets/offsets-tool.py:109, 110, 111, 115, 120, 121, 233, 234, +2 more (10 hits)
.github/skills/ci-pipeline-monitor/scripts/generate_report.py:42, 43, 44, 45, 46, 47, 197 (7 hits)
.github/skills/ci-pipeline-monitor/scripts/update_github.py:34, 35, 54, 126, 222 (5 hits)
high Security checks software dependencies conf 0.90 ✓ Repobility 9 occurrences [MINED118] Dockerfile FROM `mcr.microsoft.com/devcontainers/dotnet (no tag)` not pinned by digest: `FROM mcr.microsoft.com/devcontainers/dotnet (no tag)` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so every build is potentially different. Production images should pin to `image@sha256:...` for reproducibility + supply-chain integrity.
Replace with: `FROM mcr.microsoft.com/devcontainers/dotnet (no tag)@sha256:<digest>`. Get the digest from `docker manifest inspect`. Re-pin via a scheduled bot (Renovate, Dependabot).
9 files, 9 locations
.devcontainer/Dockerfile:5
.devcontainer/android/Dockerfile:2
.devcontainer/wasm-multiThreaded/Dockerfile:5
.devcontainer/wasm/Dockerfile:5
src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64:1
src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile:1
high Security checks software dependencies conf 0.90 ✓ Repobility [MINED126] Workflow container/services image `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-amd64` unpinned: `container/services image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-amd64` without `@sha256:...` pulls a mutable tag at workflow-run time. Treat workflow container references with the same supply-chain discipline as Dockerfile FROM lines.
Replace with `mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-amd64@sha256:<digest>`. Re-pin via Dependabot Docker scope.
.github/workflows/jit-format.yml:18
high Security checks software dependencies conf 0.90 ✓ Repobility 5 occurrences [MINED130] Lockfile pulls package from off-canonical host `pkgs.dev.azure.com`: `package-lock.json` resolved URL for `node_modules/data-uri-to-buffer` is `https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/regist...` — host `pkgs.dev.azure.com` is not the canonical registry. Could be a mirror compromise, dependency confusion attack, or a forgotten private registry.
Verify the host is intentional. If your org uses a private registry, add it to your scanner's allowlist (CANONICAL_NPM_HOSTS). Otherwise, regenerate the lockfile against the canonical registry.
5 files, 5 locations
src/libraries/System.Net.Http/tests/FunctionalTests/package-lock.json:1
src/libraries/System.Net.WebSockets.Client/tests/package-lock.json:1
src/mono/browser/runtime/package-lock.json:1
src/mono/sample/wasi/jco/package-lock.json:1
src/native/package-lock.json:1
high Security checks software Xxe conf 1.00 [SEC025] XML External Entity (XXE) — .NET XmlDocument / XmlTextReader: .NET XmlDocument and XmlTextReader expand external entities by default in pre-4.5.2 runtimes (and even later if XmlResolver is left at default). Allows file disclosure and SSRF via XXE.
Set XmlResolver = null on XmlDocument before Load. On XmlReader, pass XmlReaderSettings { DtdProcessing = DtdProcessing.Prohibit, XmlResolver = null }. Prefer XDocument / XElement which don't expand external entities by default.
src/coreclr/inc/genheaders/genheaders.cs:94
high Security checks software File upload conf 1.00 [SEC032] Unrestricted File Upload — no extension/MIME validation: File upload accepts the user's filename without validating extension, content-type, or magic bytes. Attackers upload `.php`, `.jsp`, or executable files to a web-served directory, then visit the URL to trigger RCE. CWE-434. Examples: Apache Struts (CVE-2017-9805), countless WordPress plugin RCEs.
Validate THREE things server-side: 1. Extension allowlist: ALLOWED = {'.png', '.jpg', '.pdf'} ext = Path(file.filename).suffix.lower() if ext not in ALLOWED: abort(400) 2. Magic-byte check (don't trust the extension): import magic mime = magic.from_buffer(file…
src/coreclr/scripts/utilities.py:49
low Security checks security Injection conf 1.00 [SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts.
Escape with javax.naming.ldap.Rdn.escapeValue or equivalent. For python-ldap, use ldap.filter.escape_filter_chars. Better: use parameterized search APIs (Spring LdapTemplate filter encoders).
.github/skills/ci-pipeline-monitor/scripts/fetch_helix_logs.py:52
high Security checks cicd CI/CD security conf 0.92 Docker build context is very large
Shrink the build context with .dockerignore, move generated/runtime data outside the build context, and copy only the manifest files needed for cached dependency layers.
.dockerignore CI/CD securitycontainers
low Security checks cicd CI/CD security conf 0.90 ✓ Repobility 33 occurrences GitHub Action is tag-pinned rather than SHA-pinned
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lo…
11 files, 33 locations
.github/workflows/jit-format.yml:32, 36, 40, 49 (8 hits)
.github/workflows/aspnetcore-sync.yml:19, 27, 47 (5 hits)
.github/workflows/bump-chrome-version.yml:19, 50 (4 hits)
.github/workflows/locker.yml:33, 52 (4 hits)
.github/workflows/markdownlint.yml:20, 22 (3 hits)
.github/workflows/skill-validation.yml:30 (2 hits)
src/native/external/libunwind/.github/workflows/CI-unix.yml:39, 98 (2 hits)
src/native/external/libunwind/.github/workflows/codeql-analysis.yml:29 (2 hits)
CI/CD securitySupply chainGitHub Actions
medium Security checks cicd CI/CD security conf 0.90 ✓ Repobility 6 occurrences GitHub Action is tag-pinned rather than SHA-pinned
[MINED115] Action `github/codeql-action/init` pinned to mutable ref `@v2`: `uses: github/codeql-action/init@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-ch…
lines 32, 38, 41
src/native/external/libunwind/.github/workflows/codeql-analysis.yml:32, 38, 41 (6 hits)
CI/CD securitySupply chainGitHub Actions
high Security checks cicd CI/CD security conf 0.90 ✓ Repobility 2 occurrences GitHub Action is tag-pinned rather than SHA-pinned
[MINED115] Action `dotnet/arcade/.github/workflows/backport-base.yml` pinned to mutable ref `@main`: `uses: dotnet/arcade/.github/workflows/backport-base.yml@main` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromis…
2 files, 2 locations
.github/workflows/backport.yml:18
.github/workflows/inter-branch-merge-flow.yml:13
CI/CD securitySupply chainGitHub Actions
high System graph cicd CI/CD security conf 1.00 GitHub Action tracks a moving branch
dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA.
.github/workflows/inter-branch-merge-flow.yml:13 CI/CD securitySupply chainGithub actions
high System graph cicd CI/CD security conf 1.00 GitHub Action tracks a moving branch
dotnet/arcade/.github/workflows/backport-base.yml@main can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA.
.github/workflows/backport.yml:18 CI/CD securitySupply chainGithub actions
high System graph security security conf 1.00 Insecure pattern 'eval_used' in src/mono/browser/runtime/rollup.config.js:284
Found a known-risky pattern (eval_used). Review and replace if possible.
src/mono/browser/runtime/rollup.config.js:284 Eval used
low Security checks 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.
src/coreclr/scripts/coreclr_arguments.py:140
medium Security checks quality Quality conf 1.00 ✓ Repobility [MINED109] Mutable default argument in `partition_files` (list): `def partition_files(... = []/{}/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 partition_files(x=None): x = x or []`
src/coreclr/scripts/superpmi_collect_setup.py:380
medium Security checks security Security conf 1.00 [SEC119] World-writable / world-readable file permissions: World-writable files let any local user (or container neighbor) tamper with data; world-readable files leak secrets.
Use 0600 (owner rw only) for secrets, 0644 for general files, 0700 for directories with secrets. Java: `setReadable(true, true)` (owner-only).
src/coreclr/scripts/jitformat.py:131
low Security checks quality Quality conf 1.00 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws — wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated.
Catch the specific exception type, log at error level with full exception info, and return a failure-shaped result. If the operation is genuinely best-effort, log at warning and document why in a comment so the next reader (or scanner) knows.
src/coreclr/nativeaot/System.Private.CoreLib/src/System/Reflection/Assembly.NativeAot.cs:54
low Security checks quality Quality conf 1.00 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws — wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated.
Catch the specific exception type, log at error level with full exception info, and return a failure-shaped result. If the operation is genuinely best-effort, log at warning and document why in a comment so the next reader (or scanner) knows.
src/coreclr/System.Private.CoreLib/src/System/Reflection/Assembly.CoreCLR.cs:38
medium Security checks quality Quality Average file size is 711 lines (recommend <300)
Refactor large files by extracting related functions into separate modules. Target files with 300+ lines first. Use the Single Responsibility Principle — each module should have one clear purpose.
low Security checks quality Error handling conf 0.55 ✓ Repobility 17 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.
11 files, 17 locations
src/coreclr/scripts/superpmi_aspnet2.py:65, 390, 401, 408 (4 hits)
src/coreclr/scripts/superpmi.py:795, 2447, 2553 (3 hits)
src/coreclr/scripts/jitutil.py:578, 585 (2 hits)
.github/skills/ci-pipeline-monitor/scripts/extract_failed_tests.py:83
.github/skills/ci-pipeline-monitor/scripts/fetch_helix_logs.py:145
.github/skills/ci-pipeline-monitor/scripts/update_github.py:55
.github/skills/ci-pipeline-monitor/scripts/validate_results.py:449
eng/common/cross/install-debs.py:92
Error handlingquality
high Security checks cicd CI/CD security conf 0.82 11 occurrences Docker final stage has no non-root USER
Add a non-root USER in the final runtime stage after files and permissions are prepared.
11 files, 11 locations
.devcontainer/Dockerfile:5
.devcontainer/android/Dockerfile:2
.devcontainer/wasm-multiThreaded/Dockerfile:5
.devcontainer/wasm/Dockerfile:5
src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-arm64:1
src/coreclr/nativeaot/docs/Dockerfile.cross-build-x64-x64:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile:1
CI/CD securitycontainers
medium Security checks cicd CI/CD security conf 0.86 3 occurrences Dockerfile separates apt update from install
Combine update and install in the same RUN instruction and clean package indexes in that layer.
3 files, 3 locations
.devcontainer/android/Dockerfile:5
.devcontainer/wasm-multiThreaded/Dockerfile:8
.devcontainer/wasm/Dockerfile:7
CI/CD securitycontainers
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/mono/mono/metadata/metadata-update.c:1
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/mono/browser/runtime/loader/polyfills.ts:93
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/mono/sample/wasm/browser-bench/wwwroot/main.js:88
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/native/libs/Common/JavaScript/loader/assets.ts:619
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/native/libs/Common/JavaScript/loader/polyfills.ts:100
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/native/libs/System.Runtime.InteropServices.JavaScript.Native/interop/http.ts:171
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph hardware Security conf 1.00 Dockerfile runs as root: .devcontainer/android/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: .devcontainer/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: .devcontainer/wasm-multiThreaded/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: .devcontainer/wasm/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph hardware Security conf 1.00 Dockerfile runs as root: src/libraries/System.Net.Security/tests/StressTests/SslStress/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph cicd CI/CD security conf 1.00 6 occurrences GitHub Actions workflow grants broad write permissions
CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions.
6 files, 6 locations
.github/workflows/aspnetcore-sync.yml
.github/workflows/backport.yml
.github/workflows/bump-chrome-version.yml
.github/workflows/ci-failure-scan-feedback.lock.yml
.github/workflows/ci-failure-scan.lock.yml
.github/workflows/inter-branch-merge-flow.yml
CI/CD securitySupply chainGithub actions
medium System graph security security conf 1.00 Insecure pattern 'subprocess_shell_true' in eng/common/cross/install-debs.py:236
Found a known-risky pattern (subprocess_shell_true). Review and replace if possible.
eng/common/cross/install-debs.py:236 Subprocess shell true
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — .github/skills/ci-pipeline-monitor/scripts/update_github.py:44
`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — eng/common/cross/install-debs.py:236
`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/coreclr_arguments.py:188
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/jitformat.py:86
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/jitrollingbuild.py:178
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/jitutil.py:141
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/pgocheck.py:30
`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/superpmi.py:451
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/superpmi_aspnet.py:250
`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/superpmi_aspnet2.py:106
`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/coreclr/scripts/superpmi_diffs_setup.py:225
`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 Network/subprocess call without timeout or try/except — src/native/libs/format-code.py:48
`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
runtime safetyRobustness
medium System graph security Coverage conf 1.00 No auth library detected
The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). Either auth lives in custom code, in a separate service, or is missing.
auth
medium System graph network Security conf 1.00 Privileged port 10 in use
Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/crossgen2-gcstress.yml Ports
medium System graph network Security conf 1.00 Privileged port 12 in use
Port 12 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/runtime-llvm.yml Ports
medium System graph network Security conf 1.00 Privileged port 13 in use
Port 13 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/runtime-nativeaot-outerloop.yml Ports
medium System graph network Security conf 1.00 Privileged port 14 in use
Port 14 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 15 in use
Port 15 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
.github/workflows/labeler-cache-retention.yml Ports
medium System graph network Security conf 1.00 Privileged port 16 in use
Port 16 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
src/native/external/libunwind/.github/workflows/codeql-analysis.yml Ports
medium System graph network Security conf 1.00 Privileged port 18 in use
Port 18 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 18 in use
Port 18 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/ci.yml Ports
medium System graph network Security conf 1.00 Privileged port 20 in use
Port 20 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/runtime-llvm.yml Ports
medium System graph network Security conf 1.00 Privileged port 21 in use
Port 21 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/runtime-nativeaot-outerloop.yml Ports
medium System graph network Security conf 1.00 Privileged port 256 in use
Port 256 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 26 in use
Port 26 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
src/native/external/libunwind/.github/workflows/codeql-analysis.yml Ports
medium System graph network Security conf 1.00 Privileged port 275 in use
Port 275 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/libraries/helix-queues-setup.yml Ports
medium System graph network Security conf 1.00 Privileged port 30 in use
Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/jitstress-isas-x86.yml Ports
medium System graph network Security conf 1.00 Privileged port 33 in use
Port 33 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/coreclr/templates/helix-queues-setup.yml Ports
medium System graph network Security conf 1.00 Privileged port 43 in use
Port 43 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/libraries/helix-queues-setup.yml Ports
medium System graph network Security conf 1.00 Privileged port 58 in use
Port 58 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
.github/workflows/labeler-cache-retention.yml Ports
medium System graph network Security conf 1.00 Privileged port 62 in use
Port 62 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 72 in use
Port 72 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/libraries/helix-queues-setup.yml Ports
medium System graph network Security conf 1.00 Privileged port 74 in use
Port 74 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 771 in use
Port 771 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 809 in use
Port 809 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 83 in use
Port 83 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/common/templates/pipeline-with-resources.yml Ports
medium System graph network Security conf 1.00 Privileged port 86 in use
Port 86 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer.
eng/pipelines/libraries/helix-queues-setup.yml Ports
medium System graph quality Tests conf 1.00 Very low test-to-source ratio
24 test file(s) for 260 source file(s) (ratio 0.09). Consider adding integration or unit tests for critical paths.
Coverage
low Security checks cicd CI/CD security conf 0.72 .dockerignore misses sensitive defaults
Add missing patterns such as .env, .git, private keys, certificates, dependency folders, and local databases.
.dockerignore CI/CD securitycontainers
high Security checks cicd CI/CD security conf 0.56 7 occurrences Compose service does not declare a runtime user
Set a non-root `user:` in Compose or ensure the final image stage has a non-root USER directive.
3 files, 7 locations
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/docker-compose.yml:3, 17, 53 (3 hits)
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.yml:2, 15 (2 hits)
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.yml:2, 12 (2 hits)
CI/CD securitycontainers
high Security checks cicd CI/CD security conf 0.62 7 occurrences Compose service lacks no-new-privileges hardening
Add `security_opt: ["no-new-privileges:true"]` unless the service has a documented need for privilege escalation.
3 files, 7 locations
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/docker-compose.yml:3, 17, 53 (3 hits)
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.yml:2, 15 (2 hits)
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.yml:2, 12 (2 hits)
CI/CD securitycontainers
low Security checks cicd CI/CD security conf 0.72 5 occurrences Dockerfile installs recommended OS packages
Add `--no-install-recommends` and explicitly list only packages the image needs.
3 files, 5 locations
.devcontainer/wasm-multiThreaded/Dockerfile:42, 57 (2 hits)
.devcontainer/wasm/Dockerfile:41, 56 (2 hits)
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile:6
CI/CD securitycontainers
low Security checks cicd CI/CD security conf 0.74 4 occurrences Dockerfile leaves apt package indexes in the image layer
End the apt install layer with `rm -rf /var/lib/apt/lists/*`.
4 files, 4 locations
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile:6
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile:17
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/Dockerfile:8
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile:6
CI/CD securitycontainers
low Security checks quality Quality conf 0.60 29 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, 17 locations
src/coreclr/debug/inc/riscv64/primitives.h:1, 46, 96 (3 hits)
src/coreclr/debug/di/i386/cordbregisterset.cpp:42, 134 (2 hits)
src/coreclr/debug/di/shimremotedatatarget.cpp:6, 92 (2 hits)
src/coreclr/debug/inc/loongarch64/primitives.h:1, 92 (2 hits)
src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.CoreCLR.cs:94
src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeEventInfo.cs:62
src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeFieldInfo.cs:34
src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.CoreCLR.cs:25
duplicationquality
high Security checks quality Quality conf 0.62 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.
src/mono/mono/metadata/metadata-update.h:1
low System graph quality Maintenance conf 1.00 161 TODO/FIXME markers
High count of TODO/FIXME/HACK markers — track them as issues so they're not forgotten.
low System graph hardware Coverage conf 1.00 Containers defined but no K8s/orchestration manifest found
Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo.
Deployment
low System graph hardware Supply chain conf 1.00 4 occurrences Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/dotnet:${VARIANT}
Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter.
4 files, 4 locations
.devcontainer/Dockerfile:5
.devcontainer/android/Dockerfile:2
.devcontainer/wasm-multiThreaded/Dockerfile:5
.devcontainer/wasm/Dockerfile:5
containersPinned dependencies
low System graph hardware Supply chain conf 1.00 3 occurrences Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04
Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter.
3 files, 3 locations
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/apacheweb/Dockerfile:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/kdc/Dockerfile:1
src/libraries/Common/tests/System/Net/EnterpriseTests/setup/linuxclient/Dockerfile:1
containersPinned dependencies
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/es6/dotnet.es6.extpost.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/es6/dotnet.es6.pre.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/genmintops.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/jiterpreter-enums.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/jiterpreter-tables.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/types/emscripten.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/types/node.d.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/browser/runtime/types/sidecar.d.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/sample/mbr/browser/wwwroot/main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/wasm/templates/templates/browser/wwwroot/main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/wasm/testassets/EntryPoints/minimal_main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/wasm/testassets/LibraryMode/wwwroot/main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/mono/wasm/testassets/WasmOnAspNetCore/WasmBrowserClient/wwwroot/main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/corehost/browserhost/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/external/llvm-libunwind/docs/conf.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/external/llvm-libunwind/test/lit.cfg.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/host/cross-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/host/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/host/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/loader/cross-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/loader/dotnet.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/loader/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/loader/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/types/consts.d.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/types/ems-ambient.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/types/emscripten.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/types/exchange.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/Common/JavaScript/types/internal.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/format-code.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/diagnostics/cross-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/diagnostics/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/diagnostics/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/native/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/utils/cross-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/utils/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Native.Browser/utils/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Runtime.InteropServices.JavaScript.Native/dotnet.runtime.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Runtime.InteropServices.JavaScript.Native/interop/cross-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Runtime.InteropServices.JavaScript.Native/interop/per-module.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Runtime.InteropServices.JavaScript.Native/interop/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/native/libs/System.Runtime.InteropServices.JavaScript.Native/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/tests/Common/scripts/exclusion.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/tests/Common/scripts/lst_creator.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/tests/Common/scripts/migrate-tags.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: src/tests/Common/scripts/smarty_error_parser.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 11 places
Functions with the same first-5-line body hash: src/coreclr/scripts/superpmi_aspnet.py:setup_args, src/coreclr/scripts/superpmi.py:setup_args, src/coreclr/scripts/superpmi_benchmarks.py:setup_args, src/coreclr/scripts/superpmi_asmdiffs_checked_release.py:setup_args This is *the* AI-coder failure m…
duplicatesduplication
low System graph quality Integrity conf 1.00 13 occurrences Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: src/coreclr/scripts/fuzzlyn_summarize.py:extract_assertion_error, src/coreclr/scripts/antigen_summarize.py:extract_assertion_error This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Cons…
13 occurrences
repo-level (13 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: src/coreclr/scripts/superpmi.py:filter_superpmi_collections, src/coreclr/scripts/superpmi.py:filter_superpmi_collections, src/coreclr/scripts/superpmi.py:filter_superpmi_collections This is *the* AI-coder failure mode (4× more duplication in vibe-cod…
duplicatesduplication
low System graph quality Integrity conf 1.00 4 occurrences Near-duplicate function bodies in 4 places
Functions with the same first-5-line body hash: src/coreclr/scripts/fuzzlyn_summarize.py:setup_args, src/coreclr/scripts/fuzzer_setup.py:setup_args, src/coreclr/scripts/superpmi_diffs_summarize.py:setup_args, src/coreclr/scripts/antigen_summarize.py:setup_args This is *the* AI-coder failure mode (…
4 occurrences
repo-level (4 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 8 places
Functions with the same first-5-line body hash: src/coreclr/scripts/fuzzlyn_summarize.py:main, src/coreclr/scripts/antigen_run.py:main, src/coreclr/scripts/superpmi_replay.py:main, src/coreclr/scripts/superpmi_replay_setup.py:main This is *the* AI-coder failure mode (4× more duplication in vibe-co…
duplicatesduplication
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `acceptable_copy` in src/coreclr/scripts/fuzzer_setup.py:112
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `acceptable_copy` in src/coreclr/scripts/superpmi_collect_setup.py:512
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `env_copy` in src/coreclr/scripts/superpmi.py:861
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `generate_entry_points_old` in src/coreclr/gc/vxsort/smallsort/codegen/avx2.py:499
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `generate_entry_points_old` in src/coreclr/gc/vxsort/smallsort/codegen/avx512.py:485
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `generate_entry_points_old` in src/coreclr/gc/vxsort/smallsort/codegen/bitonic_gen.py:80
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `mono_jiterp_value_copy` in src/mono/browser/runtime/cwraps.ts:86
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `value_copy` in src/mono/browser/runtime/jiterpreter-trace-generator.ts:692
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `value_copy` in src/mono/browser/runtime/jiterpreter.ts:264
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `verbose_copy` in src/coreclr/scripts/jitutil.py:202
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `verbose_copy` in src/coreclr/scripts/superpmi_asmdiffs_checked_release_setup.py:141
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `verbose_copy` in src/coreclr/scripts/superpmi_benchmarks.py:259
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `verbose_copy` in src/coreclr/scripts/superpmi_diffs_setup.py:408
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph software Dead code conf 1.00 Possibly dead Python function: check_and_return_default_core_root
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:239
low System graph software Dead code conf 1.00 Possibly dead Python function: check_and_return_default_product_location
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:251
low System graph software Dead code conf 1.00 Possibly dead Python function: check_and_return_test_location
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:228
low System graph software Dead code conf 1.00 Possibly dead Python function: check_arch
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:511
low System graph software Dead code conf 1.00 Possibly dead Python function: check_arch
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:225
low System graph software Dead code conf 1.00 Possibly dead Python function: check_build_type
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:76
low System graph software Dead code conf 1.00 Possibly dead Python function: check_host_os
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:505
low System graph software Dead code conf 1.00 Possibly dead Python function: check_host_os
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/coreclr_arguments.py:222
low System graph software Dead code conf 1.00 Possibly dead Python function: create_replay_artifacts
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:2344
low System graph software Dead code conf 1.00 Possibly dead Python function: diff_pct
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:2748
low System graph software Dead code conf 1.00 Possibly dead Python function: download_progress_hook
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/jitutil.py:659
low System graph software Dead code conf 1.00 Possibly dead Python function: filter_file
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:901
low System graph software Dead code conf 1.00 Possibly dead Python function: filter_rsp_argument
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:1223
low System graph software Dead code conf 1.00 Possibly dead Python function: find_dir
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/jitutil.py:360
low System graph software Dead code conf 1.00 Possibly dead Python function: getLength
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/genEventing.py:302
low System graph software Dead code conf 1.00 Possibly dead Python function: is_small_diff
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:2770
low System graph software Dead code conf 1.00 Possibly dead Python function: map_rsp_argument
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:1231
low System graph software Dead code conf 1.00 Possibly dead Python function: match_correlation_files
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi_replay_setup.py:66
low System graph software Dead code conf 1.00 Possibly dead Python function: match_jit_files
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi_diffs_setup.py:127
low System graph software Dead code conf 1.00 Possibly dead Python function: match_jit_files
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi_asmdiffs_checked_release_setup.py:70
low System graph software Dead code conf 1.00 Possibly dead Python function: match_superpmi_tool_files
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi_diffs_setup.py:147
low System graph software Dead code conf 1.00 Possibly dead Python function: match_superpmi_tool_files
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi_asmdiffs_checked_release_setup.py:84
low System graph software Dead code conf 1.00 Possibly dead Python function: run_crossgen2
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:1049
low System graph software Dead code conf 1.00 Possibly dead Python function: run_nativeaot
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:1187
low System graph software Dead code conf 1.00 Possibly dead Python function: run_pmi
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:968
low System graph software Dead code conf 1.00 Possibly dead Python function: setup_error_limit
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:5034
low System graph software Dead code conf 1.00 Possibly dead Python function: setup_jit_ee_version_arg
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:5023
low System graph software Dead code conf 1.00 Possibly dead Python function: setup_jit_path_arg
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:5029
low System graph software Dead code conf 1.00 Possibly dead Python function: setup_spmi_location_arg
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/superpmi.py:4966
low System graph software Dead code conf 1.00 Possibly dead Python function: try_kill
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/coreclr/scripts/jitutil.py:163
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/browser/runtime/jiterpreter-trace-generator.ts:744
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/browser/runtime/logging.ts:150
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/mbr/browser/wwwroot/main.js:15
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-advanced/wwwroot/advanced-sample.lib.module.js:5
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-advanced/wwwroot/main.js:18
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-bench/wwwroot/main.js:92
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-logprofile/wwwroot/main.js:48
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-profile/wwwroot/main.js:33
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser-threads/wwwroot/main.js:66
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/sample/wasm/browser/wwwroot/main.js:7
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/wasm/testassets/LibraryMode/wwwroot/main.js:11
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js:15
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/profiler.js:18
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/native/libs/System.Native.Browser/diagnostics/exit.ts:75
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/native/rollup.config.defines.js:24
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/tests/FunctionalTests/WebAssembly/Browser/HotReload/main.js:9
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/tests/FunctionalTests/WebAssembly/Browser/RuntimeConfig/main.js:9
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/tests/FunctionalTests/WebAssembly/Browser/StartupHook/main.js:9
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph quality Integrity conf 1.00 Stub function `close` (body is just `pass`/`return`) — src/mono/mono/offsets/offsets-tool.py:63
Likely an AI scaffold that was never filled in. Remove or implement.
Empty handlerDead code
low System graph quality Integrity conf 1.00 Stub function `vector_size` (body is just `pass`/`return`) — src/coreclr/gc/vxsort/smallsort/codegen/bitonic_isa.py:14
Likely an AI scaffold that was never filled in. Remove or implement.
Empty handlerDead code
low System graph quality Complexity conf 1.00 Very large file: src/coreclr/scripts/superpmi.py (6049 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: src/mono/browser/runtime/jiterpreter-support.ts (2154 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: src/mono/browser/runtime/jiterpreter-trace-generator.ts (4130 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: src/mono/mono/tests/verifier/make_tests.sh (5165 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: src/tests/run.py (1559 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
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/c11c5d9d-29cd-45bc-ad93-25084caec83e/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/c11c5d9d-29cd-45bc-ad93-25084caec83e/

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.