{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "DKR001", "name": "Docker final stage has no non-root USER", "shortDescription": {"text": "Docker final stage has no non-root USER"}, "fullDescription": {"text": "Docker images run as root unless the image or Dockerfile switches to a non-root user."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "medium", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "ERR002", "name": "[ERR002] Empty Catch Block: Empty catch blocks hide errors.", "shortDescription": {"text": "[ERR002] Empty Catch Block: Empty catch blocks hide errors."}, "fullDescription": {"text": "Log the error or rethrow it. Use console.error() at minimum."}, "properties": {"scanner": "repobility-threat-engine", "category": "error_handling", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC045", "name": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a latera", "shortDescription": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use obj"}, "fullDescription": {"text": "For literal data structures: use ast.literal_eval(text) \u2014 only parses literals, raises on code.\nFor formula evaluation: use asteval or simpleeval (purpose-built sandboxes with allow-lists).\nFor Odoo: use odoo.tools.safe_eval(expr, locals_dict, mode='exec').\nIf you genuinely need to execute admin-stored code: require explicit super-admin permission AND log every execution with a stack trace."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "AGT015", "name": "Remote install command pipes network code directly to a shell", "shortDescription": {"text": "Remote install command pipes network code directly to a shell"}, "fullDescription": {"text": "Agent helper projects often publish one-line installers. `curl | sh` style commands are convenient, but they bypass review unless the script is pinned, signed, or checksum-verified."}, "properties": {"scanner": "repobility-agent-runtime", "category": "dependency", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "DEPCUR-PY", "name": "Python package `packaging` is 6 major version(s) behind (20.9 -> 26.2)", "shortDescription": {"text": "Python package `packaging` is 6 major version(s) behind (20.9 -> 26.2)"}, "fullDescription": {"text": "`packaging==20.9` is 6 major version(s) behind the latest stable release on PyPI (26.2). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises."}, "properties": {"scanner": "repobility-dependency-currency", "category": "dependency", "severity": "medium", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "DKR008", "name": ".dockerignore misses sensitive defaults", "shortDescription": {"text": ".dockerignore misses sensitive defaults"}, "fullDescription": {"text": ".dockerignore exists but does not cover common secret or VCS patterns."}, "properties": {"scanner": "repobility-docker", "category": "docker", "severity": "low", "confidence": 0.72, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Duplicated blocks are a common artifact when generated code is pasted or recreated instead of reused. They increase maintenance cost because every future bug fix must be found in multiple locations."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "AIC002", "name": "Source file name looks like an AI patch artifact", "shortDescription": {"text": "Source file name looks like an AI patch artifact"}, "fullDescription": {"text": "Files named as final, fixed, copy, new, or backup are often temporary patch artifacts. They may be legitimate, but they deserve review before becoming production surface area."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "MINED044", "name": "[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed.", "shortDescription": {"text": "[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-532 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC132", "name": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the la", "shortDescription": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on it"}, "fullDescription": {"text": "Python: `f\"prefix {var} suffix\"`. JS/TS: `` `prefix ${var} suffix` ``. Add a lint rule (pyupgrade UP032, eslint prefer-template) so future PRs catch this automatically."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.1, "cwe": "", "owasp": ""}}, {"id": "SEC040", "name": "[SEC040] innerHTML XSS \u2014 template literal with server-supplied data: Setting .innerHTML with a template literal that int", "shortDescription": {"text": "[SEC040] innerHTML XSS \u2014 template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflected XSS vector. The browser parses the HTM"}, "fullDescription": {"text": "For plain text: use el.textContent = data.value (auto-escapes).\nFor HTML you need to render: el.innerHTML = DOMPurify.sanitize(html).\nFor React/Vue/Svelte: stop using innerHTML; use the framework's binding.\nWhen data comes from CV/PDF parsers, sanitize at the parser boundary too."}, "properties": {"scanner": "repobility-threat-engine", "category": "xss", "severity": "info", "confidence": 0.1, "cwe": "", "owasp": ""}}, {"id": "MINED039", "name": "[MINED039] Rust Todo Macro (and 1 more): Same pattern found in 1 additional files. Review if needed.", "shortDescription": {"text": "[MINED039] Rust Todo Macro (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED043", "name": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.", "shortDescription": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-319 / A02:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.1, "cwe": "", "owasp": ""}}, {"id": "MINED059", "name": "[MINED059] Rust Expect In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed.", "shortDescription": {"text": "[MINED059] Rust Expect In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED003", "name": "[MINED003] Rust Unwrap In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed.", "shortDescription": {"text": "[MINED003] Rust Unwrap In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED068", "name": "[MINED068] Rust Unsafe Block (and 20 more): Same pattern found in 20 additional files. Review if needed.", "shortDescription": {"text": "[MINED068] Rust Unsafe Block (and 20 more): Same pattern found in 20 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-119 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED066", "name": "[MINED066] Rust Panic Macro (and 2 more): Same pattern found in 2 additional files. Review if needed.", "shortDescription": {"text": "[MINED066] Rust Panic Macro (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2024-0320", "name": "yaml-rust: RUSTSEC-2024-0320", "shortDescription": {"text": "yaml-rust: RUSTSEC-2024-0320"}, "fullDescription": {"text": "yaml-rust is unmaintained."}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0098", "name": "unic-ucd-version: RUSTSEC-2025-0098", "shortDescription": {"text": "unic-ucd-version: RUSTSEC-2025-0098"}, "fullDescription": {"text": "`unic-ucd-version` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0104", "name": "unic-ucd-segment: RUSTSEC-2025-0104", "shortDescription": {"text": "unic-ucd-segment: RUSTSEC-2025-0104"}, "fullDescription": {"text": "`unic-ucd-segment` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0074", "name": "unic-segment: RUSTSEC-2025-0074", "shortDescription": {"text": "unic-segment: RUSTSEC-2025-0074"}, "fullDescription": {"text": "`unic-segment` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0080", "name": "unic-common: RUSTSEC-2025-0080", "shortDescription": {"text": "unic-common: RUSTSEC-2025-0080"}, "fullDescription": {"text": "`unic-common` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0075", "name": "unic-char-range: RUSTSEC-2025-0075", "shortDescription": {"text": "unic-char-range: RUSTSEC-2025-0075"}, "fullDescription": {"text": "`unic-char-range` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0081", "name": "unic-char-property: RUSTSEC-2025-0081", "shortDescription": {"text": "unic-char-property: RUSTSEC-2025-0081"}, "fullDescription": {"text": "`unic-char-property` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2026-0009", "name": "time: RUSTSEC-2026-0009", "shortDescription": {"text": "time: RUSTSEC-2026-0009"}, "fullDescription": {"text": "Denial of Service via Stack Exhaustion"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2021-0127", "name": "serde_cbor: RUSTSEC-2021-0127", "shortDescription": {"text": "serde_cbor: RUSTSEC-2021-0127"}, "fullDescription": {"text": "serde_cbor is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0026", "name": "registry: RUSTSEC-2025-0026", "shortDescription": {"text": "registry: RUSTSEC-2025-0026"}, "fullDescription": {"text": "registry is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2026-0097", "name": "rand: RUSTSEC-2026-0097", "shortDescription": {"text": "rand: RUSTSEC-2026-0097"}, "fullDescription": {"text": "Rand is unsound with a custom logger using `rand::rng()`"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2024-0436", "name": "paste: RUSTSEC-2024-0436", "shortDescription": {"text": "paste: RUSTSEC-2024-0436"}, "fullDescription": {"text": "paste - no longer maintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2025-0119", "name": "number_prefix: RUSTSEC-2025-0119", "shortDescription": {"text": "number_prefix: RUSTSEC-2025-0119"}, "fullDescription": {"text": "number_prefix crate is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2024-0384", "name": "instant: RUSTSEC-2024-0384", "shortDescription": {"text": "instant: RUSTSEC-2024-0384"}, "fullDescription": {"text": "`instant` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2024-0375", "name": "atty: RUSTSEC-2024-0375", "shortDescription": {"text": "atty: RUSTSEC-2024-0375"}, "fullDescription": {"text": "`atty` is unmaintained"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "RUSTSEC-2021-0145", "name": "atty: RUSTSEC-2021-0145", "shortDescription": {"text": "atty: RUSTSEC-2021-0145"}, "fullDescription": {"text": "Potential unaligned read"}, "properties": {"scanner": "osv-scanner", "category": "dependency", "severity": "high", "confidence": 0.88, "cwe": "", "owasp": ""}}, {"id": "SEC103", "name": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inje", "shortDescription": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "fullDescription": {"text": "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)."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC006", "name": "[SEC006] XSS Risk: Direct HTML injection without sanitization.", "shortDescription": {"text": "[SEC006] XSS Risk: Direct HTML injection without sanitization."}, "fullDescription": {"text": "Use textContent instead of innerHTML. Sanitize with DOMPurify."}, "properties": {"scanner": "repobility-threat-engine", "category": "injection", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC078", "name": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsiv", "shortDescription": {"text": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-2.0). NOTE: this regex is heuristic; a re"}, "fullDescription": {"text": "Add `timeout=10` (or appropriate value) to every requests call."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED041", "name": "[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but conventionally used for trait stubs.", "shortDescription": {"text": "[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but conventionally used for trait stubs."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC029", "name": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled ", "shortDescription": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes e"}, "fullDescription": {"text": "Validate the URL against an allowlist BEFORE fetching:\n  ALLOWED = {'images.example.com', 'cdn.example.com'}\n  host = urlparse(url).hostname\n  if host not in ALLOWED: abort(400)\nOr use a server-side proxy (Imgproxy / serve-files-only-from-S3) that isolates outbound network access from the request handler.\nBlock private CIDRs explicitly: 10/8, 172.16/12, 192.168/16, 169.254/16."}, "properties": {"scanner": "repobility-threat-engine", "category": "ssrf", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns", "shortDescription": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, ra"}, "fullDescription": {"text": "Add `await` before each async call, or chain with `.then`. If you intentionally want fire-and-forget, prefix with `void` (TS) or assign to `_` (Python with `asyncio.create_task`) to make the intent explicit and survive lint."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED012", "name": "[MINED012] Curl Pipe Bash: curl ... | sh / bash \u2014 runs unverified network code.", "shortDescription": {"text": "[MINED012] Curl Pipe Bash: curl ... | sh / bash \u2014 runs unverified network code."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-494 / A08:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED126", "name": "Workflow container/services image `rust:slim-bookworm` unpinned", "shortDescription": {"text": "Workflow container/services image `rust:slim-bookworm` unpinned"}, "fullDescription": {"text": "`container/services image: rust:slim-bookworm` without `@sha256:...` pulls a mutable tag at workflow-run time. Treat workflow container references with the same supply-chain discipline as Dockerfile FROM lines."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED115", "name": "Action `actions/cache` pinned to mutable ref `@v4`", "shortDescription": {"text": "Action `actions/cache` pinned to mutable ref `@v4`"}, "fullDescription": {"text": "`uses: actions/cache@v4` 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 + lock with Dependabot or renovate."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED118", "name": "Dockerfile FROM `centos:7` not pinned by digest", "shortDescription": {"text": "Dockerfile FROM `centos:7` not pinned by digest"}, "fullDescription": {"text": "`FROM centos:7` 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."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED106", "name": "Phantom test coverage: test_version_printing", "shortDescription": {"text": "Phantom test coverage: test_version_printing"}, "fullDescription": {"text": "Test function `test_version_printing` runs code but contains no assert / expect / should call \u2014 it passes regardless of behaviour. Adds line coverage without verifying anything."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "`self.path` used but never assigned in __init__", "shortDescription": {"text": "`self.path` used but never assigned in __init__"}, "fullDescription": {"text": "Method `compile_test_script` of class `RustCrate` reads `self.path`, 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."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED013", "name": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages.", "shortDescription": {"text": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-200 / A07:2021 for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED116", "name": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger", "shortDescription": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "fullDescription": {"text": "This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.CODECOV_TOKEN }` lets a PR from any fork exfiltrate the secret (modify a script, log the value, etc.). Use `pull_request_target` ONLY with strict checkout discipline (no fork code in the trusted context)."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "critical", "confidence": 0.9, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/1368"}, "properties": {"repository": "spkenv/spk", "repoUrl": "https://github.com/spkenv/spk", "branch": "main"}, "results": [{"ruleId": "DKR001", "level": "warning", "message": {"text": "Docker final stage has no non-root USER"}, "properties": {"repobilityId": 140096, "scanner": "repobility-docker", "fingerprint": "1096bd82e717d8ba5cc48fd0c2022d14f05fb2001f9b44dc145223ff764d334b", "category": "docker", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "No USER directive was found in the final runtime stage.", "evidence": {"rule_id": "DKR001", "scanner": "repobility-docker", "final_base": "centos:7", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/", "https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html", "https://github.com/hadolint/hadolint"], "correlation_key": "fp|1096bd82e717d8ba5cc48fd0c2022d14f05fb2001f9b44dc145223ff764d334b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "ERR002", "level": "warning", "message": {"text": "[ERR002] Empty Catch Block: Empty catch blocks hide errors."}, "properties": {"repobilityId": 140093, "scanner": "repobility-threat-engine", "fingerprint": "36f8cd3ba750d52f32c4caaffba7c0f1aae1f3e0ef7dab83beb700c089e2d1eb", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "catch(y){}", "reason": "Pattern matched with no mitigating context found", "rule_id": "ERR002", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|36f8cd3ba750d52f32c4caaffba7c0f1aae1f3e0ef7dab83beb700c089e2d1eb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/modernizr.custom-3.6.0.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "SEC045", "level": "warning", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 140073, "scanner": "repobility-threat-engine", "fingerprint": "2e6c7f970c00bbcb1938bb2881f5a531c583c57b52bbf4febd44a20d0e29feee", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".exec(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|144|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/cmd-env/src/cmd_env.rs"}, "region": {"startLine": 144}}}]}, {"ruleId": "SEC045", "level": "warning", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 140072, "scanner": "repobility-threat-engine", "fingerprint": "20ff04c837cd2c17148cba32063c2cc1231dac2e53854be483c44fbbe8adf343", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".exec(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|218|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/main/src/bin.rs"}, "region": {"startLine": 218}}}]}, {"ruleId": "SEC045", "level": "warning", "message": {"text": "[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data \u2014 even admin-stored data \u2014 is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ cleared) are escapable: attackers use object introspection (().__class__.__mro__[-1].__subclasses__()) to reach os.system. CWE-95 (eval injection)."}, "properties": {"repobilityId": 140071, "scanner": "repobility-threat-engine", "fingerprint": "8d764e2099ad7c8a6eb229812cc15453f305b60c9626a4b436fa7ffd3bda7999", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".exec(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC045", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|149|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-join/src/cmd_join.rs"}, "region": {"startLine": 149}}}]}, {"ruleId": "AGT015", "level": "warning", "message": {"text": "Remote install command pipes network code directly to a shell"}, "properties": {"repobilityId": 140052, "scanner": "repobility-agent-runtime", "fingerprint": "20ab08e2dccbcb4129b9e47d4d226da9aaac1e0e2dc524b93b0f8cf0bcbeec34", "category": "dependency", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "File contains a remote download piped directly to a shell without visible checksum or signature verification.", "evidence": {"rule_id": "AGT015", "scanner": "repobility-agent-runtime", "references": [], "correlation_key": "fp|20ab08e2dccbcb4129b9e47d4d226da9aaac1e0e2dc524b93b0f8cf0bcbeec34"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/scripts/unittests.sh"}, "region": {"startLine": 13}}}]}, {"ruleId": "DEPCUR-PY", "level": "warning", "message": {"text": "Python package `packaging` is 6 major version(s) behind (20.9 -> 26.2)"}, "properties": {"repobilityId": 140050, "scanner": "repobility-dependency-currency", "fingerprint": "f0301b02c8c06be1406cf3e6afaf047f0ed724617ba619551b772da1e648ede4", "category": "dependency", "severity": "medium", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"gap": "6 major version(s) behind", "signal": "currency", "cwe_ids": [], "package": "packaging", "scanner": "repobility-dependency-currency", "ecosystem": "pypi", "languages": ["python"], "latest_version": "26.2", "correlation_key": "fp|f0301b02c8c06be1406cf3e6afaf047f0ed724617ba619551b772da1e648ede4", "current_version": "20.9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/spk-convert-pip/requirements.txt"}, "region": {"startLine": 5}}}]}, {"ruleId": "DKR008", "level": "note", "message": {"text": ".dockerignore misses sensitive defaults"}, "properties": {"repobilityId": 140097, "scanner": "repobility-docker", "fingerprint": "aea2ad92c68c4ee1f8432bb1ec25e7d45ac12c9e1790ac2d3fffe638b1acce12", "category": "docker", "severity": "low", "confidence": 0.72, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "A Docker build context should exclude secrets and repository metadata.", "evidence": {"rule_id": "DKR008", "scanner": "repobility-docker", "references": ["https://docs.docker.com/develop/develop-images/dockerfile_best-practices/"], "correlation_key": "fp|aea2ad92c68c4ee1f8432bb1ec25e7d45ac12c9e1790ac2d3fffe638b1acce12", "missing_patterns": [".env", ".git", "id_rsa", "*.pem", "*.key"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".dockerignore"}, "region": {"startLine": 1}}}]}, {"ruleId": "DEPCUR-PY", "level": "note", "message": {"text": "Python package `wheel` is minor version(s) behind (0.46.2 -> 0.47.0)"}, "properties": {"repobilityId": 140051, "scanner": "repobility-dependency-currency", "fingerprint": "178fb6626d85a1dda79b456eddf0cc52f1d24ff2e7019d42bc5d01313ee12e8a", "category": "dependency", "severity": "low", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"gap": "minor version(s) behind", "signal": "currency", "cwe_ids": [], "package": "wheel", "scanner": "repobility-dependency-currency", "ecosystem": "pypi", "languages": ["python"], "latest_version": "0.47.0", "correlation_key": "fp|178fb6626d85a1dda79b456eddf0cc52f1d24ff2e7019d42bc5d01313ee12e8a", "current_version": "0.46.2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/spk-convert-pip/requirements.txt"}, "region": {"startLine": 8}}}]}, {"ruleId": "DEPCUR-PY", "level": "note", "message": {"text": "Python package `pkginfo` is minor version(s) behind (1.10.0 -> 1.12.1.2)"}, "properties": {"repobilityId": 140048, "scanner": "repobility-dependency-currency", "fingerprint": "5f6856db5bcfe33e34ccdcd23d51fa0e5658ca79b255b0d7a8276aa98f8e6443", "category": "dependency", "severity": "low", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"gap": "minor version(s) behind", "signal": "currency", "cwe_ids": [], "package": "pkginfo", "scanner": "repobility-dependency-currency", "ecosystem": "pypi", "languages": ["python"], "latest_version": "1.12.1.2", "correlation_key": "fp|5f6856db5bcfe33e34ccdcd23d51fa0e5658ca79b255b0d7a8276aa98f8e6443", "current_version": "1.10.0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/spk-convert-pip/requirements.txt"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 140004, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1868fe8fd57fabb2bb5dda0151c8607061e1630c6683cf7e24a457ae640ae073", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-schema/src/v0/embedded_install_spec.rs", "duplicate_line": 5, "correlation_key": "fp|1868fe8fd57fabb2bb5dda0151c8607061e1630c6683cf7e24a457ae640ae073"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-schema/src/v0/embedded_recipe_install_spec.rs"}, "region": {"startLine": 9}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 140003, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6bdf631f6dc6f985e048b7ef66b93aac5c4c7ec46bcac4fc1339a7f7db008f9b", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-schema/crates/foundation/src/ident/parsing/parsing_test.rs", "duplicate_line": 16, "correlation_key": "fp|6bdf631f6dc6f985e048b7ef66b93aac5c4c7ec46bcac4fc1339a7f7db008f9b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-schema/crates/foundation/src/version_range/parsing/version_range.rs"}, "region": {"startLine": 13}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 140002, "scanner": "repobility-ai-code-hygiene", "fingerprint": "45ea0c81d89982ce0b9fcb563db9c9bf09f0bf45866a5ca9a1a4f5fda27a8ad2", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-schema/crates/foundation/src/ident/pinnable_request_test.rs", "duplicate_line": 3, "correlation_key": "fp|45ea0c81d89982ce0b9fcb563db9c9bf09f0bf45866a5ca9a1a4f5fda27a8ad2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-schema/crates/foundation/src/ident/pinned_request_test.rs"}, "region": {"startLine": 3}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 140001, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ba1dbc1f920425c5e90ec3ccf4512e918695383693d195acb24cee641f839722", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/config.rs", "duplicate_line": 386, "correlation_key": "fp|ba1dbc1f920425c5e90ec3ccf4512e918695383693d195acb24cee641f839722"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-config/src/config.rs"}, "region": {"startLine": 142}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 140000, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5e955587afd39bbc56f23b71705ea3b09eae93082490ce2c5e26108bca294c6c", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/main/src/cmd_info.rs", "duplicate_line": 217, "correlation_key": "fp|5e955587afd39bbc56f23b71705ea3b09eae93082490ce2c5e26108bca294c6c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group4/src/cmd_view.rs"}, "region": {"startLine": 420}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139999, "scanner": "repobility-ai-code-hygiene", "fingerprint": "8736af3d5d81f464f4b2d9c0238209ba2dff219631a3dbaeb06b2066574724c7", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/group3/src/cmd_export_test.rs", "duplicate_line": 68, "correlation_key": "fp|8736af3d5d81f464f4b2d9c0238209ba2dff219631a3dbaeb06b2066574724c7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group3/src/cmd_import_test.rs"}, "region": {"startLine": 41}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139998, "scanner": "repobility-ai-code-hygiene", "fingerprint": "195d296145594fdfde87eb7bd39d74a4649ea928de700e16167b7709e10419a2", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-build/src/archive_test.rs", "duplicate_line": 16, "correlation_key": "fp|195d296145594fdfde87eb7bd39d74a4649ea928de700e16167b7709e10419a2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group3/src/cmd_import_test.rs"}, "region": {"startLine": 16}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139997, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b0fc4dcd9b528847dc516ae3c1000f69374479195200330c826235c36e5a3680", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/group2/src/cmd_ls_test.rs", "duplicate_line": 12, "correlation_key": "fp|b0fc4dcd9b528847dc516ae3c1000f69374479195200330c826235c36e5a3680"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group2/src/cmd_stats_test.rs"}, "region": {"startLine": 10}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139996, "scanner": "repobility-ai-code-hygiene", "fingerprint": "db5352356c63545f3ca4fbf93ac34e3156b51ae380d60aee9bff63e1bdae9155", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/group1/src/cmd_deprecate_test.rs", "duplicate_line": 19, "correlation_key": "fp|db5352356c63545f3ca4fbf93ac34e3156b51ae380d60aee9bff63e1bdae9155"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group1/src/cmd_undeprecate_test.rs"}, "region": {"startLine": 19}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139995, "scanner": "repobility-ai-code-hygiene", "fingerprint": "95424fff70b6560406cc2a48766c6b274079892ce1548a2e11d4f7780b0f2d54", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/cmd-env/src/cmd_env.rs", "duplicate_line": 38, "correlation_key": "fp|95424fff70b6560406cc2a48766c6b274079892ce1548a2e11d4f7780b0f2d54"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group1/src/cmd_bake.rs"}, "region": {"startLine": 121}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139994, "scanner": "repobility-ai-code-hygiene", "fingerprint": "106d57fc25cafc508d2c34449499ba963c3777606485fb4489fc81f7c4e02c71", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-build/src/error.rs", "duplicate_line": 31, "correlation_key": "fp|106d57fc25cafc508d2c34449499ba963c3777606485fb4489fc81f7c4e02c71"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/common/src/error.rs"}, "region": {"startLine": 45}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139993, "scanner": "repobility-ai-code-hygiene", "fingerprint": "146c33295c1b7975b8faa38b63ae7f8ba19e797ea313e263b97da9b506115252", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/common/src/args.rs", "duplicate_line": 140, "correlation_key": "fp|146c33295c1b7975b8faa38b63ae7f8ba19e797ea313e263b97da9b506115252"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/common/src/env.rs"}, "region": {"startLine": 147}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139992, "scanner": "repobility-ai-code-hygiene", "fingerprint": "811949569ae424d997bdada186bcc9496df3dca8360c43542d763a49c417da69", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/cmd-env/src/cmd_env.rs", "duplicate_line": 37, "correlation_key": "fp|811949569ae424d997bdada186bcc9496df3dca8360c43542d763a49c417da69"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/cmd-explain/src/cmd_explain.rs"}, "region": {"startLine": 38}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139991, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2a185f2503d83d6d726151eb28dc950e9eb5a571d558a3390aecd2cb5c1e5275", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-cli/cmd-build/src/cmd_build_test/environment.rs", "duplicate_line": 52, "correlation_key": "fp|2a185f2503d83d6d726151eb28dc950e9eb5a571d558a3390aecd2cb5c1e5275"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/cmd-build/src/cmd_build_test/mod.rs"}, "region": {"startLine": 364}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139990, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2e0d190ab8551aebe05e63fc4e15c34cd2082c0478b52a9361d3c22d460d5ba6", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-build/src/validation/long_var_description_test.rs", "duplicate_line": 18, "correlation_key": "fp|2e0d190ab8551aebe05e63fc4e15c34cd2082c0478b52a9361d3c22d460d5ba6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-build/src/validation/strong_inheritance_var_desc_test.rs"}, "region": {"startLine": 17}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139989, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b73ac40e15ab381696e365d2a74b1e4d5ffd0b2b0f63d59e8d87cea507e13416", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-build/src/validation/empty_package.rs", "duplicate_line": 20, "correlation_key": "fp|b73ac40e15ab381696e365d2a74b1e4d5ffd0b2b0f63d59e8d87cea507e13416"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-build/src/validation/spdx_license.rs"}, "region": {"startLine": 42}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139988, "scanner": "repobility-ai-code-hygiene", "fingerprint": "dfb03ae9b51b308484fd442c5203dfd290f88f8740309c52edb69e5ac5b9e3be", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spk-build/src/validation/alter_existing_files_test.rs", "duplicate_line": 22, "correlation_key": "fp|dfb03ae9b51b308484fd442c5203dfd290f88f8740309c52edb69e5ac5b9e3be"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-build/src/validation/collect_all_files_test.rs"}, "region": {"startLine": 36}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139987, "scanner": "repobility-ai-code-hygiene", "fingerprint": "54c0c07ace4b404302651d5b8140074ffebaa25eeafc9f917f27f0ffcdf6496b", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/storage/pinned/tag.rs", "duplicate_line": 94, "correlation_key": "fp|54c0c07ace4b404302651d5b8140074ffebaa25eeafc9f917f27f0ffcdf6496b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/tag.rs"}, "region": {"startLine": 116}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139986, "scanner": "repobility-ai-code-hygiene", "fingerprint": "d5c3ac4094fa4342643e442f74a6cb19f14857a710015110f37808ca1f108ff2", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/server/payload.rs", "duplicate_line": 170, "correlation_key": "fp|d5c3ac4094fa4342643e442f74a6cb19f14857a710015110f37808ca1f108ff2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/rpc/payload.rs"}, "region": {"startLine": 177}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139985, "scanner": "repobility-ai-code-hygiene", "fingerprint": "62c144bd31cc980e10d7e133fb955bea864a3aed5eca4e0605ef685a11690cf8", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/storage/fallback/repository.rs", "duplicate_line": 132, "correlation_key": "fp|62c144bd31cc980e10d7e133fb955bea864a3aed5eca4e0605ef685a11690cf8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/proxy/repository.rs"}, "region": {"startLine": 94}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139984, "scanner": "repobility-ai-code-hygiene", "fingerprint": "aeb4f7a122d3cfba7fd81cdaebc16c5c6959c55fae2df47348b31f32673b5b77", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/storage/fs/renderer.rs", "duplicate_line": 113, "correlation_key": "fp|aeb4f7a122d3cfba7fd81cdaebc16c5c6959c55fae2df47348b31f32673b5b77"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/fs/repository.rs"}, "region": {"startLine": 552}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139983, "scanner": "repobility-ai-code-hygiene", "fingerprint": "285360aae4f5f6bd7c8ac411749b553c48b94eba5789111a5aa2ee4b0d83076f", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs/src/runtime/startup_csh.rs", "duplicate_line": 1, "correlation_key": "fp|285360aae4f5f6bd7c8ac411749b553c48b94eba5789111a5aa2ee4b0d83076f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/runtime/startup_sh.rs"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139982, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3723cf29d3621aeb64daa44914c55ddf9698fd786adfc03a8933eed0d25e1c20", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/main/src/cmd_server.rs", "duplicate_line": 48, "correlation_key": "fp|3723cf29d3621aeb64daa44914c55ddf9698fd786adfc03a8933eed0d25e1c20"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/fixtures.rs"}, "region": {"startLine": 175}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139981, "scanner": "repobility-ai-code-hygiene", "fingerprint": "0bff886d047dc719abcad6dedee2b32381671cdf4f0be47b7756f748e93b7867", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-vfs/src/fuse.rs", "duplicate_line": 77, "correlation_key": "fp|0bff886d047dc719abcad6dedee2b32381671cdf4f0be47b7756f748e93b7867"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-vfs/src/winfsp/mount.rs"}, "region": {"startLine": 86}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139980, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6299eb48954e571e39f828b9a7b43f8f934879e9c561aad861847cd372d2a0a1", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/main/src/cmd_info.rs", "duplicate_line": 45, "correlation_key": "fp|6299eb48954e571e39f828b9a7b43f8f934879e9c561aad861847cd372d2a0a1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/main/src/cmd_platforms.rs"}, "region": {"startLine": 20}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139979, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9ed8ed798ef78ca8d7dde11023e5d0c7d112dac8695b50e28628355187e59274", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/main/src/cmd_layers.rs", "duplicate_line": 19, "correlation_key": "fp|9ed8ed798ef78ca8d7dde11023e5d0c7d112dac8695b50e28628355187e59274"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/main/src/cmd_platforms.rs"}, "region": {"startLine": 19}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 139978, "scanner": "repobility-ai-code-hygiene", "fingerprint": "652617f5984ef732440b3c4c5fb0d9ebfe14747023dfd38288488dce27f6ec60", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "crates/spfs-cli/main/src/cmd_info.rs", "duplicate_line": 45, "correlation_key": "fp|652617f5984ef732440b3c4c5fb0d9ebfe14747023dfd38288488dce27f6ec60"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/main/src/cmd_layers.rs"}, "region": {"startLine": 20}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 139977, "scanner": "repobility-ai-code-hygiene", "fingerprint": "ae24ca500fef89878431297ebe6866c04c7c3a08a7e793a0dcdb4bab40bdd947", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "new", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|ae24ca500fef89878431297ebe6866c04c7c3a08a7e793a0dcdb4bab40bdd947"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-cli/group2/src/cmd_new.rs"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC002", "level": "note", "message": {"text": "Source file name looks like an AI patch artifact"}, "properties": {"repobilityId": 139976, "scanner": "repobility-ai-code-hygiene", "fingerprint": "f4643a07132fdca3192cd424455f995faa365fbba6af91154badfb530b92805e", "category": "quality", "severity": "low", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Source filename contains a temporary or patch-style suffix.", "evidence": {"suffix": "clean", "rule_id": "AIC002", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195"], "correlation_key": "fp|f4643a07132fdca3192cd424455f995faa365fbba6af91154badfb530b92805e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-clean/src/cmd_clean.rs"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED044", "level": "none", "message": {"text": "[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed."}, "properties": {"repobilityId": 140095, "scanner": "repobility-threat-engine", "fingerprint": "feac00b1359791b289511fb43c506e6096ff02ad6bfefaff51c819dd882f3266", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "js-console-log-prod", "owasp": null, "cwe_ids": ["CWE-532"], "languages": ["javascript", "typescript", "tsx", "jsx"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348003+00:00", "triaged_in_corpus": 10, "observations_count": 1940833, "ai_coder_pattern_id": 102}, "scanner": "repobility-threat-engine", "correlation_key": "fp|feac00b1359791b289511fb43c506e6096ff02ad6bfefaff51c819dd882f3266"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/search.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "SEC132", "level": "none", "message": {"text": "[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template literals since ES6). Not a vulnerability on its own, but a style signature of cross-language AI rewrites \u2014 the model wrote idiomatic Java/C# and then translated mechanically. When this style appears in only *some* files of a repo, it's a strong indicator of an AI-driven rewrite that needs a human review p"}, "properties": {"repobilityId": 140092, "scanner": "repobility-threat-engine", "fingerprint": "be39972b42eade2efdb813c9683c8b2ddccf465b8a9083b0879150675e1e9b02", "category": "quality", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern 'test\\b|mock|fixture|spec\\b' detected on same line", "evidence": {"match": "\"@supports (\"+i+\") { #modernizr { position: absolute; } }\"", "reason": "Safe pattern 'test\\b|mock|fixture|spec\\b' detected on same line", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "fp|be39972b42eade2efdb813c9683c8b2ddccf465b8a9083b0879150675e1e9b02"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/modernizr.custom-3.6.0.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "SEC040", "level": "none", "message": {"text": "[SEC040] innerHTML XSS \u2014 template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflected XSS vector. The browser parses the HTML and executes any <script> or event-handler attributes in the data. CWE-79. Especially dangerous when the data comes from a CV parser, profile field, or any user-input pipeline."}, "properties": {"repobilityId": 140091, "scanner": "repobility-threat-engine", "fingerprint": "a0a741659d57c78cdd7cb55fc07bd3bfc364350d0f895c6787797dea3e1e4400", "category": "xss", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern 'test\\b' detected on same line", "evidence": {"match": ".innerHTML=\"x<style>\"+t", "reason": "Safe pattern 'test\\b' detected on same line", "rule_id": "SEC040", "scanner": "repobility-threat-engine", "confidence": 0.1, "correlation_key": "fp|a0a741659d57c78cdd7cb55fc07bd3bfc364350d0f895c6787797dea3e1e4400"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/modernizr.custom-3.6.0.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "MINED039", "level": "none", "message": {"text": "[MINED039] Rust Todo Macro (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 140083, "scanner": "repobility-threat-engine", "fingerprint": "84dde797c2186ffbd0f4bc842ea90ece7245118a56a51bf320799e6f34e2664f", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "rust-todo-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347989+00:00", "triaged_in_corpus": 15, "observations_count": 1561, "ai_coder_pattern_id": 114}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|84dde797c2186ffbd0f4bc842ea90ece7245118a56a51bf320799e6f34e2664f", "aggregated_count": 1}}}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 140076, "scanner": "repobility-threat-engine", "fingerprint": "87f8a42d8d9d764aff5d2325f1125eeac8aec5098df436e05f08d166f1947901", "category": "quality", "severity": "info", "confidence": 0.1, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Safe pattern 'test\\b' detected on same line", "evidence": {"mined": true, "mining": {"slug": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|87f8a42d8d9d764aff5d2325f1125eeac8aec5098df436e05f08d166f1947901"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/modernizr.custom-3.6.0.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 140075, "scanner": "repobility-threat-engine", "fingerprint": "4c399cf9f996139d1e29dd11e5153b2934127a7d5ec18c6c9a23104647ec57da", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4c399cf9f996139d1e29dd11e5153b2934127a7d5ec18c6c9a23104647ec57da"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/fixtures.rs"}, "region": {"startLine": 168}}}]}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 140074, "scanner": "repobility-threat-engine", "fingerprint": "5fd28a1c51a9d609f52a8ac0cf6f201fd1a927e705b4761183617b43417156ba", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "http-not-https", "owasp": "A02:2021", "cwe_ids": ["CWE-319"], "precision": 0.917, "promoted_at": "2026-05-18T14:01:32.347999+00:00", "triaged_in_corpus": 12, "observations_count": 4113831, "ai_coder_pattern_id": 15}, "scanner": "repobility-threat-engine", "correlation_key": "fp|5fd28a1c51a9d609f52a8ac0cf6f201fd1a927e705b4761183617b43417156ba"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-winfsp/src/cmd_winfsp.rs"}, "region": {"startLine": 199}}}]}, {"ruleId": "MINED059", "level": "none", "message": {"text": "[MINED059] Rust Expect In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed."}, "properties": {"repobilityId": 140070, "scanner": "repobility-threat-engine", "fingerprint": "11e31a3fef3d569ab74501741711447ae014bd9a77682f0555949aae826c5139", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 21 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "rust-expect-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348039+00:00", "triaged_in_corpus": 12, "observations_count": 175379, "ai_coder_pattern_id": 112}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|11e31a3fef3d569ab74501741711447ae014bd9a77682f0555949aae826c5139", "aggregated_count": 21}}}, {"ruleId": "MINED059", "level": "none", "message": {"text": "[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message."}, "properties": {"repobilityId": 140069, "scanner": "repobility-threat-engine", "fingerprint": "4a7f2e1224ad9ef2f3f0eee52624c35053f4c71a3d127b3895d83a4ca241aee8", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-expect-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348039+00:00", "triaged_in_corpus": 12, "observations_count": 175379, "ai_coder_pattern_id": 112}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4a7f2e1224ad9ef2f3f0eee52624c35053f4c71a3d127b3895d83a4ca241aee8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-encoding/src/hash.rs"}, "region": {"startLine": 289}}}]}, {"ruleId": "MINED059", "level": "none", "message": {"text": "[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message."}, "properties": {"repobilityId": 140068, "scanner": "repobility-threat-engine", "fingerprint": "b449fba5cfb31a06fb0f1ddb0745ae6bc775e82b80bfe1380e6c7bb1eddfbe13", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-expect-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348039+00:00", "triaged_in_corpus": 12, "observations_count": 175379, "ai_coder_pattern_id": 112}, "scanner": "repobility-threat-engine", "correlation_key": "fp|b449fba5cfb31a06fb0f1ddb0745ae6bc775e82b80bfe1380e6c7bb1eddfbe13"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-winfsp/src/cmd_winfsp.rs"}, "region": {"startLine": 182}}}]}, {"ruleId": "MINED059", "level": "none", "message": {"text": "[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message."}, "properties": {"repobilityId": 140067, "scanner": "repobility-threat-engine", "fingerprint": "f36b13b4c79a9192718830abc18824c0f2299514f6bf027e6c3b5851fa393fb0", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-expect-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348039+00:00", "triaged_in_corpus": 12, "observations_count": 175379, "ai_coder_pattern_id": 112}, "scanner": "repobility-threat-engine", "correlation_key": "fp|f36b13b4c79a9192718830abc18824c0f2299514f6bf027e6c3b5851fa393fb0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/progress_bar_derive_macro/src/lib.rs"}, "region": {"startLine": 123}}}]}, {"ruleId": "MINED003", "level": "none", "message": {"text": "[MINED003] Rust Unwrap In Prod (and 21 more): Same pattern found in 21 additional files. Review if needed."}, "properties": {"repobilityId": 140066, "scanner": "repobility-threat-engine", "fingerprint": "f60ddbb2c2d63a686c4405a3be0df1b02c7a8143cc293bef60bae71bedce0161", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 21 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "rust-unwrap-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347903+00:00", "triaged_in_corpus": 15, "observations_count": 386515, "ai_coder_pattern_id": 111}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|f60ddbb2c2d63a686c4405a3be0df1b02c7a8143cc293bef60bae71bedce0161", "aggregated_count": 21}}}, {"ruleId": "MINED068", "level": "none", "message": {"text": "[MINED068] Rust Unsafe Block (and 20 more): Same pattern found in 20 additional files. Review if needed."}, "properties": {"repobilityId": 140062, "scanner": "repobility-threat-engine", "fingerprint": "8759d8d3382a10f9983b195b0dc989ef25e29fbf588a4c139ca1b08552404f63", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 20 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "rust-unsafe-block", "owasp": null, "cwe_ids": ["CWE-119"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348060+00:00", "triaged_in_corpus": 12, "observations_count": 42383, "ai_coder_pattern_id": 116}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|8759d8d3382a10f9983b195b0dc989ef25e29fbf588a4c139ca1b08552404f63", "aggregated_count": 20}}}, {"ruleId": "MINED068", "level": "none", "message": {"text": "[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside."}, "properties": {"repobilityId": 140061, "scanner": "repobility-threat-engine", "fingerprint": "d6607b5873e56005e4803291c42876be169665b15880198ceab10202af26a211", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unsafe-block", "owasp": null, "cwe_ids": ["CWE-119"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348060+00:00", "triaged_in_corpus": 12, "observations_count": 42383, "ai_coder_pattern_id": 116}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d6607b5873e56005e4803291c42876be169665b15880198ceab10202af26a211"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-winfsp/src/cmd_winfsp.rs"}, "region": {"startLine": 39}}}]}, {"ruleId": "MINED068", "level": "none", "message": {"text": "[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside."}, "properties": {"repobilityId": 140060, "scanner": "repobility-threat-engine", "fingerprint": "bd05f30d563f1a8a2dfcae1f7a11e52d6ecfdef7cda5f5265dfd6bec3ba724d2", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unsafe-block", "owasp": null, "cwe_ids": ["CWE-119"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348060+00:00", "triaged_in_corpus": 12, "observations_count": 42383, "ai_coder_pattern_id": 116}, "scanner": "repobility-threat-engine", "correlation_key": "fp|bd05f30d563f1a8a2dfcae1f7a11e52d6ecfdef7cda5f5265dfd6bec3ba724d2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-join/src/cmd_join.rs"}, "region": {"startLine": 116}}}]}, {"ruleId": "MINED068", "level": "none", "message": {"text": "[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside."}, "properties": {"repobilityId": 140059, "scanner": "repobility-threat-engine", "fingerprint": "7adfcc308e210a1c0edf287a28147259d2d3662ce2b7dc2697650621c9df63d5", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unsafe-block", "owasp": null, "cwe_ids": ["CWE-119"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348060+00:00", "triaged_in_corpus": 12, "observations_count": 42383, "ai_coder_pattern_id": 116}, "scanner": "repobility-threat-engine", "correlation_key": "fp|7adfcc308e210a1c0edf287a28147259d2d3662ce2b7dc2697650621c9df63d5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/parsedbuf/src/lib.rs"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED066", "level": "none", "message": {"text": "[MINED066] Rust Panic Macro (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "properties": {"repobilityId": 140058, "scanner": "repobility-threat-engine", "fingerprint": "b0811e157f5b25ff0defe39bccf8a2060dfa8263d6723148ebe692d678a977e7", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 2 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "rust-panic-macro", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348055+00:00", "triaged_in_corpus": 12, "observations_count": 48611, "ai_coder_pattern_id": 113}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|b0811e157f5b25ff0defe39bccf8a2060dfa8263d6723148ebe692d678a977e7", "aggregated_count": 2}}}, {"ruleId": "MINED066", "level": "none", "message": {"text": "[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable errors."}, "properties": {"repobilityId": 140057, "scanner": "repobility-threat-engine", "fingerprint": "3451797c57cd8498da4a142b660ff62e685006e6d0dc855fdfe64499678d9855", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-panic-macro", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348055+00:00", "triaged_in_corpus": 12, "observations_count": 48611, "ai_coder_pattern_id": 113}, "scanner": "repobility-threat-engine", "correlation_key": "fp|3451797c57cd8498da4a142b660ff62e685006e6d0dc855fdfe64499678d9855"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/fixtures.rs"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED066", "level": "none", "message": {"text": "[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable errors."}, "properties": {"repobilityId": 140056, "scanner": "repobility-threat-engine", "fingerprint": "d3922a23f04ee54cd2eba56dc53068a67aebcedef041d114d4a09055eebdc8f3", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-panic-macro", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348055+00:00", "triaged_in_corpus": 12, "observations_count": 48611, "ai_coder_pattern_id": 113}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d3922a23f04ee54cd2eba56dc53068a67aebcedef041d114d4a09055eebdc8f3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-encoding/src/hash.rs"}, "region": {"startLine": 52}}}]}, {"ruleId": "MINED066", "level": "none", "message": {"text": "[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable errors."}, "properties": {"repobilityId": 140055, "scanner": "repobility-threat-engine", "fingerprint": "fd8bc12462836abcc4528b7cdcefd7f85c0abc0237439ab3c58a445e38b48a43", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-panic-macro", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348055+00:00", "triaged_in_corpus": 12, "observations_count": 48611, "ai_coder_pattern_id": 113}, "scanner": "repobility-threat-engine", "correlation_key": "fp|fd8bc12462836abcc4528b7cdcefd7f85c0abc0237439ab3c58a445e38b48a43"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/is_default_derive_macro/src/lib.rs"}, "region": {"startLine": 69}}}]}, {"ruleId": "DEPCUR-PY", "level": "none", "message": {"text": "Python package `pkginfo` is patch version(s) behind (1.12.0 -> 1.12.1.2)"}, "properties": {"repobilityId": 140049, "scanner": "repobility-dependency-currency", "fingerprint": "2ae8d2409d54dc01932abfd85e4cfa091cf93b007ed4718bf6a5cfaad5d83f19", "category": "dependency", "severity": "info", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"gap": "patch version(s) behind", "signal": "currency", "cwe_ids": [], "package": "pkginfo", "scanner": "repobility-dependency-currency", "ecosystem": "pypi", "languages": ["python"], "latest_version": "1.12.1.2", "correlation_key": "fp|2ae8d2409d54dc01932abfd85e4cfa091cf93b007ed4718bf6a5cfaad5d83f19", "current_version": "1.12.0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/spk-convert-pip/requirements.txt"}, "region": {"startLine": 4}}}]}, {"ruleId": "RUSTSEC-2024-0320", "level": "error", "message": {"text": "yaml-rust: RUSTSEC-2024-0320"}, "properties": {"repobilityId": 140113, "scanner": "osv-scanner", "fingerprint": "70967c64ce611dd07d3a189ca0d1542831d3a26c197c68aa7b72fc171615d198", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "yaml-rust", "rule_id": "RUSTSEC-2024-0320", "scanner": "osv-scanner", "correlation_key": "fp|70967c64ce611dd07d3a189ca0d1542831d3a26c197c68aa7b72fc171615d198"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0098", "level": "error", "message": {"text": "unic-ucd-version: RUSTSEC-2025-0098"}, "properties": {"repobilityId": 140112, "scanner": "osv-scanner", "fingerprint": "06fe7c47e9b484cb74a72b526eeb1bd4918050594abaff6f206c98d977915f20", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-ucd-version", "rule_id": "RUSTSEC-2025-0098", "scanner": "osv-scanner", "correlation_key": "fp|06fe7c47e9b484cb74a72b526eeb1bd4918050594abaff6f206c98d977915f20"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0104", "level": "error", "message": {"text": "unic-ucd-segment: RUSTSEC-2025-0104"}, "properties": {"repobilityId": 140111, "scanner": "osv-scanner", "fingerprint": "f6d3f3838507fd2c0718447a05681e4e4994375b332cdbd320872fb2e38eca3a", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-ucd-segment", "rule_id": "RUSTSEC-2025-0104", "scanner": "osv-scanner", "correlation_key": "fp|f6d3f3838507fd2c0718447a05681e4e4994375b332cdbd320872fb2e38eca3a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0074", "level": "error", "message": {"text": "unic-segment: RUSTSEC-2025-0074"}, "properties": {"repobilityId": 140110, "scanner": "osv-scanner", "fingerprint": "f48db2ea6c76db78eef3b54bfbcf2b3e012fd7ffcb6ab253616226c1b3aa2af6", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-segment", "rule_id": "RUSTSEC-2025-0074", "scanner": "osv-scanner", "correlation_key": "fp|f48db2ea6c76db78eef3b54bfbcf2b3e012fd7ffcb6ab253616226c1b3aa2af6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0080", "level": "error", "message": {"text": "unic-common: RUSTSEC-2025-0080"}, "properties": {"repobilityId": 140109, "scanner": "osv-scanner", "fingerprint": "5c35bf96b81287dcd2e5ed2b97337276e2d14de552724e356eaaace1897ff3fa", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-common", "rule_id": "RUSTSEC-2025-0080", "scanner": "osv-scanner", "correlation_key": "fp|5c35bf96b81287dcd2e5ed2b97337276e2d14de552724e356eaaace1897ff3fa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0075", "level": "error", "message": {"text": "unic-char-range: RUSTSEC-2025-0075"}, "properties": {"repobilityId": 140108, "scanner": "osv-scanner", "fingerprint": "fa8344e1f03d5986c0a672e54d9533c5eb80400e4844eecab6b1f630ac9e76b0", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-char-range", "rule_id": "RUSTSEC-2025-0075", "scanner": "osv-scanner", "correlation_key": "fp|fa8344e1f03d5986c0a672e54d9533c5eb80400e4844eecab6b1f630ac9e76b0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0081", "level": "error", "message": {"text": "unic-char-property: RUSTSEC-2025-0081"}, "properties": {"repobilityId": 140107, "scanner": "osv-scanner", "fingerprint": "a0d9725cc2e8feb0f8c178c7e1e1ab6560fb992068321457c042afe3f7897cce", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "unic-char-property", "rule_id": "RUSTSEC-2025-0081", "scanner": "osv-scanner", "correlation_key": "fp|a0d9725cc2e8feb0f8c178c7e1e1ab6560fb992068321457c042afe3f7897cce"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2026-0009", "level": "error", "message": {"text": "time: RUSTSEC-2026-0009"}, "properties": {"repobilityId": 140106, "scanner": "osv-scanner", "fingerprint": "9fb941cdcde7d808df297ded949de574907ac1fbeb6f7223b9e05c56e941adb0", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "Collapsed 1 duplicate scanner signal(s) for the same underlying issue.", "evidence": {"match": "", "aliases": ["CVE-2026-25727", "GHSA-r6v5-fh4h-64xc"], "package": "time", "rule_id": "RUSTSEC-2026-0009", "scanner": "osv-scanner", "correlation_key": "vuln|time|CVE-2026-25727|cargo.lock", "duplicate_count": 1, "duplicate_rule_ids": ["GHSA-r6v5-fh4h-64xc", "RUSTSEC-2026-0009"], "duplicate_scanners": ["osv-scanner"], "duplicate_fingerprints": ["2c2d2ae12df666e8132d287bd534a3c14d824cdb5129b7d9425024955a840e9f", "9fb941cdcde7d808df297ded949de574907ac1fbeb6f7223b9e05c56e941adb0"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2021-0127", "level": "error", "message": {"text": "serde_cbor: RUSTSEC-2021-0127"}, "properties": {"repobilityId": 140105, "scanner": "osv-scanner", "fingerprint": "a1dd4446b1ebae535d80097a37bd392cdf56bfe6431e6f6faea9a80fa4e9997d", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "serde_cbor", "rule_id": "RUSTSEC-2021-0127", "scanner": "osv-scanner", "correlation_key": "fp|a1dd4446b1ebae535d80097a37bd392cdf56bfe6431e6f6faea9a80fa4e9997d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0026", "level": "error", "message": {"text": "registry: RUSTSEC-2025-0026"}, "properties": {"repobilityId": 140104, "scanner": "osv-scanner", "fingerprint": "6f86d1694dccc0ae41e67841ff0fd8c8569a1a1813509b250bdfc9e314a65de6", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "registry", "rule_id": "RUSTSEC-2025-0026", "scanner": "osv-scanner", "correlation_key": "fp|6f86d1694dccc0ae41e67841ff0fd8c8569a1a1813509b250bdfc9e314a65de6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2026-0097", "level": "error", "message": {"text": "rand: RUSTSEC-2026-0097"}, "properties": {"repobilityId": 140103, "scanner": "osv-scanner", "fingerprint": "a22e3aa5f0c463335f53b031b0648b51d94f3563915cac37a8666a217ed7a5dc", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "Collapsed 1 duplicate scanner signal(s) for the same underlying issue.", "evidence": {"match": "", "aliases": ["GHSA-cq8v-f236-94qc"], "package": "rand", "rule_id": "RUSTSEC-2026-0097", "scanner": "osv-scanner", "correlation_key": "vuln|rand|GHSA-CQ8V-F236-94QC|cargo.lock", "duplicate_count": 1, "duplicate_rule_ids": ["GHSA-cq8v-f236-94qc", "RUSTSEC-2026-0097"], "duplicate_scanners": ["osv-scanner"], "duplicate_fingerprints": ["a22e3aa5f0c463335f53b031b0648b51d94f3563915cac37a8666a217ed7a5dc", "ee2ad9157999fcb0c8f925391a5e09946511288ceed3e6c5f5b05828611b879f"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2024-0436", "level": "error", "message": {"text": "paste: RUSTSEC-2024-0436"}, "properties": {"repobilityId": 140102, "scanner": "osv-scanner", "fingerprint": "ecf6a49d252eada338538964a3d9bb37acf276dba6d473e55cf76f528b35783f", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "paste", "rule_id": "RUSTSEC-2024-0436", "scanner": "osv-scanner", "correlation_key": "fp|ecf6a49d252eada338538964a3d9bb37acf276dba6d473e55cf76f528b35783f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2025-0119", "level": "error", "message": {"text": "number_prefix: RUSTSEC-2025-0119"}, "properties": {"repobilityId": 140101, "scanner": "osv-scanner", "fingerprint": "cc81fba84c326e572b9634175b3b53e32085ac28a5cd991c3bb028754d296545", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "number_prefix", "rule_id": "RUSTSEC-2025-0119", "scanner": "osv-scanner", "correlation_key": "fp|cc81fba84c326e572b9634175b3b53e32085ac28a5cd991c3bb028754d296545"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2024-0384", "level": "error", "message": {"text": "instant: RUSTSEC-2024-0384"}, "properties": {"repobilityId": 140100, "scanner": "osv-scanner", "fingerprint": "2ceb760f484abeb3a84e0d3edb5de7bba161864b40faf40414de9a12f611490f", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "instant", "rule_id": "RUSTSEC-2024-0384", "scanner": "osv-scanner", "correlation_key": "fp|2ceb760f484abeb3a84e0d3edb5de7bba161864b40faf40414de9a12f611490f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2024-0375", "level": "error", "message": {"text": "atty: RUSTSEC-2024-0375"}, "properties": {"repobilityId": 140099, "scanner": "osv-scanner", "fingerprint": "7659bfa3796c87ab29d2fa2fed8de97a968f38d0d7927cd19e00695ce8330bd5", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"match": "", "package": "atty", "rule_id": "RUSTSEC-2024-0375", "scanner": "osv-scanner", "correlation_key": "fp|7659bfa3796c87ab29d2fa2fed8de97a968f38d0d7927cd19e00695ce8330bd5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "RUSTSEC-2021-0145", "level": "error", "message": {"text": "atty: RUSTSEC-2021-0145"}, "properties": {"repobilityId": 140098, "scanner": "osv-scanner", "fingerprint": "a1c674679a0daa9ad82d1d4917872781295adfcddd1cd580124d38ff15d2687a", "category": "dependency", "severity": "high", "confidence": 0.88, "triageState": "open", "verdict": "", "isResolved": false, "reason": "Collapsed 1 duplicate scanner signal(s) for the same underlying issue.", "evidence": {"match": "", "aliases": ["GHSA-g98v-hv3f-hcfr"], "package": "atty", "rule_id": "RUSTSEC-2021-0145", "scanner": "osv-scanner", "correlation_key": "vuln|atty|GHSA-G98V-HV3F-HCFR|cargo.lock", "duplicate_count": 1, "duplicate_rule_ids": ["GHSA-g98v-hv3f-hcfr", "RUSTSEC-2021-0145"], "duplicate_scanners": ["osv-scanner"], "duplicate_fingerprints": ["40f04d504386f433be36aeb657151d1f32299623bc61dff32f4ed07d1989ada2", "a1c674679a0daa9ad82d1d4917872781295adfcddd1cd580124d38ff15d2687a"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "SEC103", "level": "error", "message": {"text": "[SEC103] LDAP injection \u2014 non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts."}, "properties": {"repobilityId": 140094, "scanner": "repobility-threat-engine", "fingerprint": "136a41f4c5e8a13a1a990c87f3b20e841a7be77ca79fd72d483038b1cdb00802", "category": "injection", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": ".search(queryTerm+\"^100\"+\" \"+queryTerm+\"*^10\"+\" \"+\"*\"+queryTerm+\"^10\"+\" \"+queryTerm+\"~2^1\")", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC103", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|website/static/js/search.js|54|sec103"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/search.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "SEC006", "level": "error", "message": {"text": "[SEC006] XSS Risk: Direct HTML injection without sanitization."}, "properties": {"repobilityId": 140090, "scanner": "repobility-threat-engine", "fingerprint": "46eb2f485df780ad8525aab2531ca4514ace2f6084307d81ebcd0f0a1f64e43e", "category": "injection", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found Collapsed 1 duplicate scanner signal(s) for the same underlying issue.", "evidence": {"match": ".innerHTML=o", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC006", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|injection|token|3|sec006", "duplicate_count": 1, "duplicate_rule_ids": ["SEC006"], "duplicate_scanners": ["repobility-threat-engine"], "duplicate_fingerprints": ["46eb2f485df780ad8525aab2531ca4514ace2f6084307d81ebcd0f0a1f64e43e", "b4b3ef9ab3b66cf93c701a6cfa571eb0feea24ffaf97955216a0582ee8e930fb"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/static/js/auto-complete.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "SEC078", "level": "error", "message": {"text": "[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-2.0). NOTE: this regex is heuristic; a real AST check is preferred for accuracy."}, "properties": {"repobilityId": 140089, "scanner": "repobility-threat-engine", "fingerprint": "8f4156010b20986812224feb72d7129a63319efc99f6044bef49bc4bd2ffad1c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "requests.get(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC078", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|8f4156010b20986812224feb72d7129a63319efc99f6044bef49bc4bd2ffad1c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-solve/src/search_space.rs"}, "region": {"startLine": 159}}}]}, {"ruleId": "MINED041", "level": "error", "message": {"text": "[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but conventionally used for trait stubs."}, "properties": {"repobilityId": 140088, "scanner": "repobility-threat-engine", "fingerprint": "5e0971d59addedb8bd4282c5581f217f6e7e1951e59ed84b9e53242f477e99a0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unimplemented-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347994+00:00", "triaged_in_corpus": 15, "observations_count": 1422, "ai_coder_pattern_id": 115}, "scanner": "repobility-threat-engine", "correlation_key": "fp|5e0971d59addedb8bd4282c5581f217f6e7e1951e59ed84b9e53242f477e99a0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-solve/src/status_line.rs"}, "region": {"startLine": 26}}}]}, {"ruleId": "MINED041", "level": "error", "message": {"text": "[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but conventionally used for trait stubs."}, "properties": {"repobilityId": 140087, "scanner": "repobility-threat-engine", "fingerprint": "92e817199b403e4eec53479ac72ab11d30588dc73cdff54f3efdf6b2afaa7638", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unimplemented-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347994+00:00", "triaged_in_corpus": 15, "observations_count": 1422, "ai_coder_pattern_id": 115}, "scanner": "repobility-threat-engine", "correlation_key": "fp|92e817199b403e4eec53479ac72ab11d30588dc73cdff54f3efdf6b2afaa7638"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/pinned/repository.rs"}, "region": {"startLine": 190}}}]}, {"ruleId": "MINED041", "level": "error", "message": {"text": "[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but conventionally used for trait stubs."}, "properties": {"repobilityId": 140086, "scanner": "repobility-threat-engine", "fingerprint": "18df05d23edf9223c14c2d34d6e9451d244867a54c3dcc01368911f45a93e404", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unimplemented-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347994+00:00", "triaged_in_corpus": 15, "observations_count": 1422, "ai_coder_pattern_id": 115}, "scanner": "repobility-threat-engine", "correlation_key": "fp|18df05d23edf9223c14c2d34d6e9451d244867a54c3dcc01368911f45a93e404"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/fs/renderer_win.rs"}, "region": {"startLine": 28}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 140085, "scanner": "repobility-threat-engine", "fingerprint": "0297c7d2c7723e1bbb2b375b77d06bd7718153ed8ab6b70d0d7fee7b5abc6387", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "url(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|0297c7d2c7723e1bbb2b375b77d06bd7718153ed8ab6b70d0d7fee7b5abc6387"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/rpc/repository.rs"}, "region": {"startLine": 52}}}]}, {"ruleId": "SEC029", "level": "error", "message": {"text": "[SEC029] Server-Side Request Forgery (SSRF) \u2014 outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.254.169.254 metadata, internal Kubernetes endpoints, file:// URIs), exfiltrate data, or pivot through your network. SSRF is OWASP A10:2021 and a frequent foothold in cloud breaches."}, "properties": {"repobilityId": 140084, "scanner": "repobility-threat-engine", "fingerprint": "0cfd42d805844c07cc5bf07614d67a2a93402c22d5a504a119c9264246e9a082", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "url(u", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|0cfd42d805844c07cc5bf07614d67a2a93402c22d5a504a119c9264246e9a082"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/storage/config.rs"}, "region": {"startLine": 14}}}]}, {"ruleId": "MINED039", "level": "error", "message": {"text": "[MINED039] Rust Todo Macro: todo!() panics when reached. Unimplemented code path."}, "properties": {"repobilityId": 140082, "scanner": "repobility-threat-engine", "fingerprint": "4004f9de83d34a654a06dbe6f0740c7b8df05a980dabd957326238385fcc00d6", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-todo-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347989+00:00", "triaged_in_corpus": 15, "observations_count": 1561, "ai_coder_pattern_id": 114}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4004f9de83d34a654a06dbe6f0740c7b8df05a980dabd957326238385fcc00d6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/status_win.rs"}, "region": {"startLine": 10}}}]}, {"ruleId": "MINED039", "level": "error", "message": {"text": "[MINED039] Rust Todo Macro: todo!() panics when reached. Unimplemented code path."}, "properties": {"repobilityId": 140081, "scanner": "repobility-threat-engine", "fingerprint": "7447664d220e67b3805196f0575b88b3e83d499a076ed41b97f0a53910413608", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-todo-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347989+00:00", "triaged_in_corpus": 15, "observations_count": 1561, "ai_coder_pattern_id": 114}, "scanner": "repobility-threat-engine", "correlation_key": "fp|7447664d220e67b3805196f0575b88b3e83d499a076ed41b97f0a53910413608"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/monitor_win.rs"}, "region": {"startLine": 20}}}]}, {"ruleId": "MINED039", "level": "error", "message": {"text": "[MINED039] Rust Todo Macro: todo!() panics when reached. Unimplemented code path."}, "properties": {"repobilityId": 140080, "scanner": "repobility-threat-engine", "fingerprint": "aa1dc96f79f8102a99bad7b37aeb39d008e0e4c10657457178e25ed954ffe466", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-todo-macro", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347989+00:00", "triaged_in_corpus": 15, "observations_count": 1561, "ai_coder_pattern_id": 114}, "scanner": "repobility-threat-engine", "correlation_key": "fp|aa1dc96f79f8102a99bad7b37aeb39d008e0e4c10657457178e25ed954ffe466"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/env_win.rs"}, "region": {"startLine": 21}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 140079, "scanner": "repobility-threat-engine", "fingerprint": "e2b21e0e1f6d3c64061c84f54d16e45ad9960b674653f5d0534b24564e892bdd", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "hasher.update(b\"=\");", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|e2b21e0e1f6d3c64061c84f54d16e45ad9960b674653f5d0534b24564e892bdd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spk-schema/src/build_spec.rs"}, "region": {"startLine": 149}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 140078, "scanner": "repobility-threat-engine", "fingerprint": "db8b7c9aac7b88283e5e7dc55c0ddd12e64811d9b22cad1c4b1902f00f152ebd", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "existing.update(node);", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|db8b7c9aac7b88283e5e7dc55c0ddd12e64811d9b22cad1c4b1902f00f152ebd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs/src/tracking/entry.rs"}, "region": {"startLine": 376}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 140077, "scanner": "repobility-threat-engine", "fingerprint": "7e4f6b81b3e127aafeb0db15dc39b6b91ccabcdfe3f06232c88abee54722cf55", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "self.ctx.update(&buf[..count]);", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|7e4f6b81b3e127aafeb0db15dc39b6b91ccabcdfe3f06232c88abee54722cf55"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-encoding/src/hash.rs"}, "region": {"startLine": 110}}}]}, {"ruleId": "MINED003", "level": "error", "message": {"text": "[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky elsewhere."}, "properties": {"repobilityId": 140065, "scanner": "repobility-threat-engine", "fingerprint": "4b017e5a7f416354fa3094ffc8b3256e24b4bd4fac5ad0cb519233f469b96c54", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unwrap-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347903+00:00", "triaged_in_corpus": 15, "observations_count": 386515, "ai_coder_pattern_id": 111}, "scanner": "repobility-threat-engine", "correlation_key": "fp|4b017e5a7f416354fa3094ffc8b3256e24b4bd4fac5ad0cb519233f469b96c54"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-proto/build.rs"}, "region": {"startLine": 17}}}]}, {"ruleId": "MINED003", "level": "error", "message": {"text": "[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky elsewhere."}, "properties": {"repobilityId": 140064, "scanner": "repobility-threat-engine", "fingerprint": "bcfdb36ccd860470bf4b5396c4ab0a0aaec761523537cd8f7c37186c6e203832", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unwrap-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347903+00:00", "triaged_in_corpus": 15, "observations_count": 386515, "ai_coder_pattern_id": 111}, "scanner": "repobility-threat-engine", "correlation_key": "fp|bcfdb36ccd860470bf4b5396c4ab0a0aaec761523537cd8f7c37186c6e203832"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/spfs-cli/cmd-render/src/cmd_render.rs"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED003", "level": "error", "message": {"text": "[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky elsewhere."}, "properties": {"repobilityId": 140063, "scanner": "repobility-threat-engine", "fingerprint": "f12e251f5339721288d7ecd0b75c2dfc49b7299303d190d4365ba8e18ab0078e", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "rust-unwrap-in-prod", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["rust"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347903+00:00", "triaged_in_corpus": 15, "observations_count": 386515, "ai_coder_pattern_id": 111}, "scanner": "repobility-threat-engine", "correlation_key": "fp|f12e251f5339721288d7ecd0b75c2dfc49b7299303d190d4365ba8e18ab0078e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/progress_bar_derive_macro/src/lib.rs"}, "region": {"startLine": 32}}}]}, {"ruleId": "MINED012", "level": "error", "message": {"text": "[MINED012] Curl Pipe Bash: curl ... | sh / bash \u2014 runs unverified network code."}, "properties": {"repobilityId": 140053, "scanner": "repobility-threat-engine", "fingerprint": "0dc00ce56a03bd7e37cdd007214a5eee03718502d812232cad0298c18a0d69b3", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "curl-pipe-bash", "owasp": "A08:2021", "cwe_ids": ["CWE-494"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347926+00:00", "triaged_in_corpus": 15, "observations_count": 135001, "ai_coder_pattern_id": 25}, "scanner": "repobility-threat-engine", "correlation_key": "fp|0dc00ce56a03bd7e37cdd007214a5eee03718502d812232cad0298c18a0d69b3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/scripts/unittests.sh"}, "region": {"startLine": 13}}}]}, {"ruleId": "MINED126", "level": "error", "message": {"text": "Workflow container/services image `rust:slim-bookworm` unpinned"}, "properties": {"repobilityId": 140047, "scanner": "repobility-supply-chain", "fingerprint": "ef92dcb9d905fd5e8648ebc1a05721d9898e61c428bccac3ed506372b234e74d", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-container-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ef92dcb9d905fd5e8648ebc1a05721d9898e61c428bccac3ed506372b234e74d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 203}}}]}, {"ruleId": "MINED126", "level": "error", "message": {"text": "Workflow container/services image `rust:slim-bookworm` unpinned"}, "properties": {"repobilityId": 140046, "scanner": "repobility-supply-chain", "fingerprint": "17313766e80349fa0c12488eab45b43929b47c512e1ad10fe0ff686f91488453", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-container-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|17313766e80349fa0c12488eab45b43929b47c512e1ad10fe0ff686f91488453"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 107}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/cache` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140045, "scanner": "repobility-supply-chain", "fingerprint": "3fdc515225530dabce10832ddb4d2a53915bb72538995bd0669d1a18841d5218", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|3fdc515225530dabce10832ddb4d2a53915bb72538995bd0669d1a18841d5218"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 270}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `mozilla-actions/sccache-action` pinned to mutable ref `@v0.0.9`"}, "properties": {"repobilityId": 140044, "scanner": "repobility-supply-chain", "fingerprint": "6e140fe9c6d034545f33cf38d346a40abaf4b24d695b0d0ecb5cd62ba867d0fe", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|6e140fe9c6d034545f33cf38d346a40abaf4b24d695b0d0ecb5cd62ba867d0fe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 267}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140043, "scanner": "repobility-supply-chain", "fingerprint": "aa5a15931d2258460f92b8a32f6a37874bbe685866496633966c94ed1f6cb077", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|aa5a15931d2258460f92b8a32f6a37874bbe685866496633966c94ed1f6cb077"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 233}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140042, "scanner": "repobility-supply-chain", "fingerprint": "76573360dda4730ba2fef13fbeda5ee3830924ad3b805d827419d889c9cd77cf", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|76573360dda4730ba2fef13fbeda5ee3830924ad3b805d827419d889c9cd77cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 232}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/cache` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140041, "scanner": "repobility-supply-chain", "fingerprint": "31243594dacbd27e590ad46931467a45e4dd08c6f9ea4a4445f4415627c0fda0", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|31243594dacbd27e590ad46931467a45e4dd08c6f9ea4a4445f4415627c0fda0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 151}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `mozilla-actions/sccache-action` pinned to mutable ref `@v0.0.9`"}, "properties": {"repobilityId": 140040, "scanner": "repobility-supply-chain", "fingerprint": "202fc842e2d625105063a86ebf785ac4b40d7c3c4138263eedf396b4ade72138", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|202fc842e2d625105063a86ebf785ac4b40d7c3c4138263eedf396b4ade72138"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 148}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v2`"}, "properties": {"repobilityId": 140039, "scanner": "repobility-supply-chain", "fingerprint": "968139e744163b3b3a9f6b8041e5b02d7155954711674cd04604b15c28bf4b91", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|968139e744163b3b3a9f6b8041e5b02d7155954711674cd04604b15c28bf4b91"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 121}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140038, "scanner": "repobility-supply-chain", "fingerprint": "d9f35d1f2f2b82278d07f8f3e6a1e6819aae242cf29c73e1cfe9442778210ba2", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|d9f35d1f2f2b82278d07f8f3e6a1e6819aae242cf29c73e1cfe9442778210ba2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 120}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/cache` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140037, "scanner": "repobility-supply-chain", "fingerprint": "b1edb5b9d9dd4fba1aa96a493c1fe4e740f06e39a04fa0dc00331a4e7c386b05", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|b1edb5b9d9dd4fba1aa96a493c1fe4e740f06e39a04fa0dc00331a4e7c386b05"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 83}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `crazy-max/ghaction-chocolatey` pinned to mutable ref `@v3`"}, "properties": {"repobilityId": 140036, "scanner": "repobility-supply-chain", "fingerprint": "9373b73e3d7b257b232d2847a2f795f27e236ed10a64455a6d05c44fe5d5d398", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|9373b73e3d7b257b232d2847a2f795f27e236ed10a64455a6d05c44fe5d5d398"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v2`"}, "properties": {"repobilityId": 140035, "scanner": "repobility-supply-chain", "fingerprint": "67b3f87390a6ad0587c0ff868bdc0161e35f2612e27ee9edcaafa55471c9b2a2", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|67b3f87390a6ad0587c0ff868bdc0161e35f2612e27ee9edcaafa55471c9b2a2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140034, "scanner": "repobility-supply-chain", "fingerprint": "e8642362cd5c264923a1182d896bac4940c5f2a366068434bf2a66559eccad99", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|e8642362cd5c264923a1182d896bac4940c5f2a366068434bf2a66559eccad99"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rust.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/download-artifact` pinned to mutable ref `@v2`"}, "properties": {"repobilityId": 140033, "scanner": "repobility-supply-chain", "fingerprint": "8d5af43e255275f478315e870dd6ad0253c07ee3f1f3ce6c1b9b9a63581a7e06", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|8d5af43e255275f478315e870dd6ad0253c07ee3f1f3ce6c1b9b9a63581a7e06"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `dawidd6/action-download-artifact` pinned to mutable ref `@v6`"}, "properties": {"repobilityId": 140032, "scanner": "repobility-supply-chain", "fingerprint": "bd9c7e832e29a97ececdb05e461293442d4f5932f79fe1c62432e45188334b2a", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|bd9c7e832e29a97ececdb05e461293442d4f5932f79fe1c62432e45188334b2a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v2`"}, "properties": {"repobilityId": 140031, "scanner": "repobility-supply-chain", "fingerprint": "749f5c394d1a0f87f93744bf271294e8527ba642685ea92f83d87c4e9643b8ba", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|749f5c394d1a0f87f93744bf271294e8527ba642685ea92f83d87c4e9643b8ba"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140030, "scanner": "repobility-supply-chain", "fingerprint": "037ecbc7759045ff64b6b5f090b4df8d8d49aea2d77dbdd4a2c543a1446673f6", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|037ecbc7759045ff64b6b5f090b4df8d8d49aea2d77dbdd4a2c543a1446673f6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/upload-artifact` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140029, "scanner": "repobility-supply-chain", "fingerprint": "4aec5da651f0cce67e8841eb1efce26098b2a8a38ea5c70fa82fcac995ce7069", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|4aec5da651f0cce67e8841eb1efce26098b2a8a38ea5c70fa82fcac995ce7069"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v2`"}, "properties": {"repobilityId": 140028, "scanner": "repobility-supply-chain", "fingerprint": "f40a883905cf778025c56d78ae520410e4fd6c2e10a381873833297cec95b23e", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f40a883905cf778025c56d78ae520410e4fd6c2e10a381873833297cec95b23e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140027, "scanner": "repobility-supply-chain", "fingerprint": "5f5575ad60d959958e465974eee00c404c941a6587cfec901fea3f548bf6f9ee", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5f5575ad60d959958e465974eee00c404c941a6587cfec901fea3f548bf6f9ee"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rpm.yml"}, "region": {"startLine": 14}}}]}, {"ruleId": "MINED126", "level": "error", "message": {"text": "Workflow container/services image `rust:slim-bookworm` unpinned"}, "properties": {"repobilityId": 140026, "scanner": "repobility-supply-chain", "fingerprint": "b94b13fec32f655d7905f8d6c552b0f7ae84831521b6bd4ded525a956b9a8fa8", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-container-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|b94b13fec32f655d7905f8d6c552b0f7ae84831521b6bd4ded525a956b9a8fa8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `irongut/CodeCoverageSummary` pinned to mutable ref `@v1.3.0`"}, "properties": {"repobilityId": 140024, "scanner": "repobility-supply-chain", "fingerprint": "bea24f2549e2363ae10d69b49786619017ed2c2befea81d36fca49ac97e567cf", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|bea24f2549e2363ae10d69b49786619017ed2c2befea81d36fca49ac97e567cf"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 82}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `codecov/codecov-action` pinned to mutable ref `@v5`"}, "properties": {"repobilityId": 140023, "scanner": "repobility-supply-chain", "fingerprint": "7458952582f717d3beb2cbbf7467fb1aeff66352a2d6fbd80a9ccc03690267aa", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|7458952582f717d3beb2cbbf7467fb1aeff66352a2d6fbd80a9ccc03690267aa"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 78}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v3`"}, "properties": {"repobilityId": 140022, "scanner": "repobility-supply-chain", "fingerprint": "9be39b5547f89f467e42cb49a4412071e0036f1c67de186d1e23448d1f2d4358", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|9be39b5547f89f467e42cb49a4412071e0036f1c67de186d1e23448d1f2d4358"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `styfle/cancel-workflow-action` pinned to mutable ref `@0.11.0`"}, "properties": {"repobilityId": 140021, "scanner": "repobility-supply-chain", "fingerprint": "f0c853eb9ddaa485997fa2b8fca3ebf70f52735e62146e704497563cc3491263", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f0c853eb9ddaa485997fa2b8fca3ebf70f52735e62146e704497563cc3491263"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `streetsidesoftware/cspell-action` pinned to mutable ref `@v5`"}, "properties": {"repobilityId": 140020, "scanner": "repobility-supply-chain", "fingerprint": "8fea7e53226cd3720569838245cb7c79f2d999c776482b0f4d824f7c2e93672b", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|8fea7e53226cd3720569838245cb7c79f2d999c776482b0f4d824f7c2e93672b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cspell.yml"}, "region": {"startLine": 13}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "Action `actions/checkout` pinned to mutable ref `@v4`"}, "properties": {"repobilityId": 140019, "scanner": "repobility-supply-chain", "fingerprint": "efa2f6d5cb583228b4e61305bfcca34a0b75d0f7d624b1e52b5eb4ebe11c76c9", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|efa2f6d5cb583228b4e61305bfcca34a0b75d0f7d624b1e52b5eb4ebe11c76c9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cspell.yml"}, "region": {"startLine": 12}}}]}, {"ruleId": "MINED118", "level": "error", "message": {"text": "Dockerfile FROM `centos:7` not pinned by digest"}, "properties": {"repobilityId": 140018, "scanner": "repobility-supply-chain", "fingerprint": "5131d15bde397af7818b96ac74599e7cce5f9c599df808ecb4b54f45b514a025", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "docker-from-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["dockerfile"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5131d15bde397af7818b96ac74599e7cce5f9c599df808ecb4b54f45b514a025"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED118", "level": "error", "message": {"text": "Dockerfile FROM `almalinux:9` not pinned by digest"}, "properties": {"repobilityId": 140017, "scanner": "repobility-supply-chain", "fingerprint": "4508b756a0e452b8030ff5ff5d2789ddd3ac344fb266e37d526789cf1bd23ef1", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "docker-from-unpinned", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["dockerfile"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|4508b756a0e452b8030ff5ff5d2789ddd3ac344fb266e37d526789cf1bd23ef1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rpmbuild.Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_version_printing"}, "properties": {"repobilityId": 140016, "scanner": "repobility-ast-engine", "fingerprint": "60c208eb335278c6c604550f23d3fce136c97b2f29e1ff07b3a1d9c4d9412b89", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|60c208eb335278c6c604550f23d3fce136c97b2f29e1ff07b3a1d9c4d9412b89"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/python/python_example/_example_test.py"}, "region": {"startLine": 8}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.path` used but never assigned in __init__"}, "properties": {"repobilityId": 140015, "scanner": "repobility-ast-engine", "fingerprint": "c7bfaf5b4767e9980d0f99c5b277dc9cd0afa1c5904d905f5a79d894931b306c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c7bfaf5b4767e9980d0f99c5b277dc9cd0afa1c5904d905f5a79d894931b306c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.name` used but never assigned in __init__"}, "properties": {"repobilityId": 140014, "scanner": "repobility-ast-engine", "fingerprint": "9377d8900595ea0e41c4fc7a17609c3a902fea63a771e2a266746a2367173e43", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|9377d8900595ea0e41c4fc7a17609c3a902fea63a771e2a266746a2367173e43"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 117}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.build_dir` used but never assigned in __init__"}, "properties": {"repobilityId": 140013, "scanner": "repobility-ast-engine", "fingerprint": "277e8c5c16e087d94174a565d42a1ed9b584461573d09624c92d06c7b1067f24", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|277e8c5c16e087d94174a565d42a1ed9b584461573d09624c92d06c7b1067f24"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.path` used but never assigned in __init__"}, "properties": {"repobilityId": 140012, "scanner": "repobility-ast-engine", "fingerprint": "b5af38ce560dfb0179c29e8c003f0c27f7fee1688d0c0dfc013187c9b40700c9", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b5af38ce560dfb0179c29e8c003f0c27f7fee1688d0c0dfc013187c9b40700c9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.build_dir` used but never assigned in __init__"}, "properties": {"repobilityId": 140011, "scanner": "repobility-ast-engine", "fingerprint": "634fc68dac998382b179cbe820d237955331540279b08a684203acdef5f55914", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|634fc68dac998382b179cbe820d237955331540279b08a684203acdef5f55914"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.name` used but never assigned in __init__"}, "properties": {"repobilityId": 140010, "scanner": "repobility-ast-engine", "fingerprint": "f8faff0e9812fd040e8c4de56c8785dc2d13c2eaacd5529a19e8721a8dc4f8a1", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f8faff0e9812fd040e8c4de56c8785dc2d13c2eaacd5529a19e8721a8dc4f8a1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.path` used but never assigned in __init__"}, "properties": {"repobilityId": 140009, "scanner": "repobility-ast-engine", "fingerprint": "413a9389af8a110f5bb22cb2bc2549bd8115df4a85f900508b59c7f14f84c98d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|413a9389af8a110f5bb22cb2bc2549bd8115df4a85f900508b59c7f14f84c98d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self.name` used but never assigned in __init__"}, "properties": {"repobilityId": 140008, "scanner": "repobility-ast-engine", "fingerprint": "e6c2b235526fbea4650ee580fa2e38d38f99d6a1b679bf8a74e22a364c44e808", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|e6c2b235526fbea4650ee580fa2e38d38f99d6a1b679bf8a74e22a364c44e808"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._args` used but never assigned in __init__"}, "properties": {"repobilityId": 140007, "scanner": "repobility-ast-engine", "fingerprint": "2a0efffe79412ee9c25a1dc379c66f8ee9a6e0a8d632a9981b28bd83051c5d72", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|2a0efffe79412ee9c25a1dc379c66f8ee9a6e0a8d632a9981b28bd83051c5d72"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 13}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "`self._exe` used but never assigned in __init__"}, "properties": {"repobilityId": 140006, "scanner": "repobility-ast-engine", "fingerprint": "fbae74917dbee36bcd0e22fb1f2639f2c6ddb49d08a1af440777f8bcfa006375", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|fbae74917dbee36bcd0e22fb1f2639f2c6ddb49d08a1af440777f8bcfa006375"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "MINED106", "level": "error", "message": {"text": "Phantom test coverage: test_example"}, "properties": {"repobilityId": 140005, "scanner": "repobility-ast-engine", "fingerprint": "b17c17520286d5deb2e317fa8a852c2981e91b4fc6e77f88ed2c995ca1a95454", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "phantom-test-coverage", "owasp": null, "cwe_ids": ["CWE-1126"], "languages": ["python"], "observations_count": 982154}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b17c17520286d5deb2e317fa8a852c2981e91b4fc6e77f88ed2c995ca1a95454"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/_test.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "MINED013", "level": "error", "message": {"text": "[MINED013] Password In Url: https://user:password@host \u2014 leaks creds via logs, referrer, error messages."}, "properties": {"repobilityId": 140054, "scanner": "repobility-threat-engine", "fingerprint": "287f39b40ebf81c09556ed71249c683c0abc20f659f9fe8cce0c12c1b299e857", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "password-in-url", "owasp": "A07:2021", "cwe_ids": ["CWE-200"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347928+00:00", "triaged_in_corpus": 20, "observations_count": 121646, "ai_coder_pattern_id": 37}, "scanner": "repobility-threat-engine", "correlation_key": "fp|287f39b40ebf81c09556ed71249c683c0abc20f659f9fe8cce0c12c1b299e857"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".site/spi/.spdev/overrides.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "MINED116", "level": "error", "message": {"text": "Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger"}, "properties": {"repobilityId": 140025, "scanner": "repobility-supply-chain", "fingerprint": "804b0788219c5ef3641af328ca1e62367116b82ab5c7e87447b6d16ca60ff3bb", "category": "dependency", "severity": "critical", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-pull-request-secrets", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|804b0788219c5ef3641af328ca1e62367116b82ab5c7e87447b6d16ca60ff3bb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/coverage.yml"}, "region": {"startLine": 80}}}]}]}]}