{"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": "SEC136", "name": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns ", "shortDescription": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, retur"}, "fullDescription": {"text": "Catch the specific exception type, log at error level with full exception info, and return a failure-shaped result. If the operation is genuinely best-effort, log at warning and document why in a comment so the next reader (or scanner) knows."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CFG006", "name": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.", "shortDescription": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "fullDescription": {"text": "Add a .gitignore appropriate for your language/framework."}, "properties": {"scanner": "repobility-threat-engine", "category": "practices", "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": "SEC001", "name": "[SEC001] Hardcoded Password: Hardcoded password found in source code.", "shortDescription": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "fullDescription": {"text": "Use environment variables or a secrets manager."}, "properties": {"scanner": "repobility-threat-engine", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "cwe": "", "owasp": ""}}, {"id": "AIC004", "name": "Suspicious implementation file appears unreferenced", "shortDescription": {"text": "Suspicious implementation file appears unreferenced"}, "fullDescription": {"text": "Confirm whether this file is reachable. If not, delete it; if yes, wire it through explicit imports, routes, or entry points and add a test that proves the path executes."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "AIC001", "name": "Parallel implementation file sits beside a canonical file", "shortDescription": {"text": "Parallel implementation file sits beside a canonical file"}, "fullDescription": {"text": "Merge the intended change into the canonical file, update tests/imports, and delete the parallel implementation if it is not the active entry point."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "medium", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "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": "low", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "AIC005", "name": "Duplicate top-level symbol appears in a patch-style file", "shortDescription": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "fullDescription": {"text": "Keep one authoritative implementation, update imports to point at it, and remove or rename the duplicate symbol."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.64, "cwe": "", "owasp": ""}}, {"id": "MINED051", "name": "[MINED051] Csharp Null Forgive (and 4 more): Same pattern found in 4 additional files. Review if needed.", "shortDescription": {"text": "[MINED051] Csharp Null Forgive (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-476 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 5 more): Same pattern found in 5 addit", "shortDescription": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "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": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC025", "name": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader (and 2 more): Same pattern found in 2 additional f", "shortDescription": {"text": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "fullDescription": {"text": "Set XmlResolver = null on XmlDocument before Load. On XmlReader, pass XmlReaderSettings { DtdProcessing = DtdProcessing.Prohibit, XmlResolver = null }. Prefer XDocument / XElement which don't expand external entities by default."}, "properties": {"scanner": "repobility-threat-engine", "category": "xxe", "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": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC020", "name": "[SEC020] Secret Printed to Logs (and 1 more): Same pattern found in 1 additional files. Review if needed.", "shortDescription": {"text": "[SEC020] Secret Printed to Logs (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "Log only redacted, hashed, or last-four-style metadata. Rotate any secret that may have reached logs."}, "properties": {"scanner": "repobility-threat-engine", "category": "credential_exposure", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED134", "name": "[MINED134] Binary file `bin/ref/SqlScriptoria.dll` committed in source repo: `bin/ref/SqlScriptoria.dll` is a .dll binar", "shortDescription": {"text": "[MINED134] Binary file `bin/ref/SqlScriptoria.dll` committed in source repo: `bin/ref/SqlScriptoria.dll` is a .dll binary (707,104 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal sour"}, "fullDescription": {"text": "Audit the binary's provenance. If it's vendored library code, document it in a VENDORED.md. If it's a build artifact, add the extension to .gitignore and rebuild from source."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_TESTS", "name": "No test files found", "shortDescription": {"text": "No test files found"}, "fullDescription": {"text": "Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions."}, "properties": {"scanner": "repobility-core", "category": "testing", "severity": "high", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "MINED115", "name": "[MINED115] Action `mshick/add-pr-comment` pinned to mutable ref `@v3`: `uses: mshick/add-pr-comment@v3` resolves at work", "shortDescription": {"text": "[MINED115] Action `mshick/add-pr-comment` pinned to mutable ref `@v3`: `uses: mshick/add-pr-comment@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise"}, "fullDescription": {"text": "Replace with: `uses: mshick/add-pr-comment@<40-char-sha>  # v3` and let Dependabot bump it on a scheduled cadence."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "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": ""}}]}}, "automationDetails": {"id": "repobility/8"}, "properties": {"repository": "microsoft/sqltoolsservice", "repoUrl": "https://github.com/microsoft/sqltoolsservice", "branch": "main"}, "results": [{"ruleId": "SEC136", "level": "warning", "message": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated."}, "properties": {"repobilityId": 44318, "scanner": "repobility-threat-engine", "fingerprint": "777a2eba540913ef797fc5bcfe87388dd57d252d8a40c7f91082c016241aa2ab", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "}\n            catch (ArgumentException)\n            {\n                return null;\n            }", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|777a2eba540913ef797fc5bcfe87388dd57d252d8a40c7f91082c016241aa2ab"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.SqlCore/SchemaCompare/SchemaCompareUtils.cs"}, "region": {"startLine": 100}}}]}, {"ruleId": "CFG006", "level": "warning", "message": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "properties": {"repobilityId": 43907, "scanner": "repobility-threat-engine", "fingerprint": "c65fc71ce58c37a0e07837c0fe294108b731c43ef16027a2f0971c757bbe9a16", "category": "practices", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "No .gitignore file found in repository root", "evidence": {"reason": "No .gitignore file found in repository root", "rule_id": "CFG006", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "repo|practices|cfg006"}}}, {"ruleId": "SEC136", "level": "warning", "message": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated."}, "properties": {"repobilityId": 32077, "scanner": "repobility-threat-engine", "fingerprint": "cb56140a913e024c956fdd0ee169e605596f8d0326843c2978f41b8a6544978b", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "}\n            catch (ArgumentException)\n            {\n                return null;\n            }", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|cb56140a913e024c956fdd0ee169e605596f8d0326843c2978f41b8a6544978b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.SqlCore/SchemaCompare/SchemaCompareUtils.cs"}, "region": {"startLine": 101}}}]}, {"ruleId": "SEC136", "level": "warning", "message": {"text": "[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws \u2014 wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated."}, "properties": {"repobilityId": 32076, "scanner": "repobility-threat-engine", "fingerprint": "7a8b3a5d0d87a5ee6c48e7e50026beafe6bdaab5a7432964b5ac9741cf96a0b2", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "}\n            catch (SqlException)\n            {\n                return null;\n            }", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC136", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|7a8b3a5d0d87a5ee6c48e7e50026beafe6bdaab5a7432964b5ac9741cf96a0b2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.SqlCore/Performance/Common/Utils.cs"}, "region": {"startLine": 566}}}]}, {"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": 32070, "scanner": "repobility-threat-engine", "fingerprint": "32bf53eedd8e101295836613f31c4cf0e4334ba75d8f2347e97056ca11f05a26", "category": "injection", "severity": "medium", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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|1115|sec045"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ManagedBatchParser/ReliableConnection/ReliableConnectionHelper.cs"}, "region": {"startLine": 1115}}}]}, {"ruleId": "SEC001", "level": "warning", "message": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "properties": {"repobilityId": 32068, "scanner": "repobility-threat-engine", "fingerprint": "ceea7550b34baf542504ce96c5c0cd359a9b0415c44b1ffdb7943a1cd14dcf44", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Low entropy value (-0.0 bits) \u2014 may be placeholder or common string", "evidence": {"match": "Password    = \"<redacted>\"", "reason": "Low entropy value (-0.0 bits) \u2014 may be placeholder or common string", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.3, "correlation_key": "secret|token|87|password redacted"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Security/LoginData.cs"}, "region": {"startLine": 875}}}]}, {"ruleId": "SEC001", "level": "warning", "message": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "properties": {"repobilityId": 32067, "scanner": "repobility-threat-engine", "fingerprint": "c924a39a45decbd058c2e40e2032d6c64738bf095c542aa778a9ac65c39e4319", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Low entropy value (3.9 bits) \u2014 may be placeholder or common string", "evidence": {"match": "Password = \"<redacted>\"", "reason": "Low entropy value (3.9 bits) \u2014 may be placeholder or common string", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.3, "correlation_key": "secret|token|1119|password redacted"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs"}, "region": {"startLine": 11197}}}]}, {"ruleId": "SEC001", "level": "warning", "message": {"text": "[SEC001] Hardcoded Password: Hardcoded password found in source code."}, "properties": {"repobilityId": 32066, "scanner": "repobility-threat-engine", "fingerprint": "0b45540500b425fbd4c4be55a7bcef90503969235c40a3373f4d8416b89821b0", "category": "credential_exposure", "severity": "medium", "confidence": 0.3, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Low entropy value (3.8 bits) \u2014 may be placeholder or common string Collapsed 2 duplicate scanner signal(s) for the same underlying issue.", "evidence": {"match": "Password = \"<redacted>\"", "reason": "Low entropy value (3.8 bits) \u2014 may be placeholder or common string", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.3, "correlation_key": "secret|token|1|password redacted", "duplicate_count": 2, "duplicate_rule_ids": ["SEC001"], "duplicate_scanners": ["repobility-threat-engine"], "duplicate_fingerprints": ["0b45540500b425fbd4c4be55a7bcef90503969235c40a3373f4d8416b89821b0", "45c078737c421200b34c87329ccac349e5dd67304d767afa4e23f6b31bb540bb", "6693a4eaef73a6212044729582af09086474979f84e255afa0f16270afffbfc3"]}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Hosting/Utility/SqlConstants.cs"}, "region": {"startLine": 16}}}]}, {"ruleId": "AIC004", "level": "warning", "message": {"text": "Suspicious implementation file appears unreferenced"}, "properties": {"repobilityId": 2264, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9a97dbfef331ed32510d786571ee0087b9ac1ce03425a97a95a6d5e2bc80ab0f", "category": "quality", "severity": "medium", "confidence": 0.78, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Patch-style source file has no detected inbound reference from other repository files.", "evidence": {"suffix": "old", "rule_id": "AIC004", "scanner": "repobility-ai-code-hygiene", "references": ["https://knip.dev/", "https://github.com/jendrikseipp/vulture"], "correlation_key": "fp|9a97dbfef331ed32510d786571ee0087b9ac1ce03425a97a95a6d5e2bc80ab0f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Credentials/Credentials/OSX/Interop.Security.old.cs"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC001", "level": "warning", "message": {"text": "Parallel implementation file sits beside a canonical file"}, "properties": {"repobilityId": 2263, "scanner": "repobility-ai-code-hygiene", "fingerprint": "20bd96d6b47eb2e50f155c99c4acf2faad7fb9cb17588a007b7ce04f4a68f923", "category": "quality", "severity": "medium", "confidence": 0.82, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "Source filename has a patch-style suffix and a same-directory canonical sibling exists.", "evidence": {"suffix": "old", "rule_id": "AIC001", "scanner": "repobility-ai-code-hygiene", "references": ["https://arxiv.org/abs/2601.15195", "https://knip.dev/"], "canonical_file": "src/Microsoft.SqlTools.Credentials/Credentials/OSX/Interop.Security.cs", "correlation_key": "fp|20bd96d6b47eb2e50f155c99c4acf2faad7fb9cb17588a007b7ce04f4a68f923"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Credentials/Credentials/OSX/Interop.Security.old.cs"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 54305, "scanner": "repobility-ai-code-hygiene", "fingerprint": "5cf3a1a67fe07bfa6db38077628e507075c4c56276ceec06e2c5bb28a5acd10f", "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": "src/Microsoft.SqlTools.Hosting/Hosting/Protocol/Channel/ServerChannel.cs", "duplicate_line": 24, "correlation_key": "fp|5cf3a1a67fe07bfa6db38077628e507075c4c56276ceec06e2c5bb28a5acd10f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Hosting/Hosting/Protocol/Channel/StdioClientChannel.cs"}, "region": {"startLine": 51}}}]}, {"ruleId": "SEC132", "level": "note", "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": 32056, "scanner": "repobility-threat-engine", "fingerprint": "b3734ff65fc475ce1a7de93813ca15b91565a30e6bff0a27dcbb6183fa654945", "category": "quality", "severity": "low", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "\"No token with ID\" + id + \" found in the columns definition.\"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|b3734ff65fc475ce1a7de93813ca15b91565a30e6bff0a27dcbb6183fa654945"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Formatter/Impl/ASTNodeFormatterT.cs"}, "region": {"startLine": 326}}}]}, {"ruleId": "SEC132", "level": "note", "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": 32055, "scanner": "repobility-threat-engine", "fingerprint": "ae5662e6aa1187ed7338b1bae72b2f9bfe5791d01bb2a667b372a965dfe08776", "category": "quality", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "\", Literal Value: \" + literalValue + \", On line: \"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|ae5662e6aa1187ed7338b1bae72b2f9bfe5791d01bb2a667b372a965dfe08776"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/AutoParameterizaition/Exceptions/ParameterizationFormatException.cs"}, "region": {"startLine": 37}}}]}, {"ruleId": "SEC132", "level": "note", "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": 32054, "scanner": "repobility-threat-engine", "fingerprint": "f409ddb00a755f733d3fee74ccc5c3154dfba0aae2fc755618ae8b0466f402e2", "category": "quality", "severity": "low", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "\"Minimum and Maximum values are \" + min + \" and \"", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC132", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|f409ddb00a755f733d3fee74ccc5c3154dfba0aae2fc755618ae8b0466f402e2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/samples/smo/netcore/ModifySetting/Program.cs"}, "region": {"startLine": 23}}}]}, {"ruleId": "AIC005", "level": "note", "message": {"text": "Duplicate top-level symbol appears in a patch-style file"}, "properties": {"repobilityId": 2274, "scanner": "repobility-ai-code-hygiene", "fingerprint": "b23698398b0988de7f07bf08c00c47e5b44f81d7e44d7affe12135802d1af124", "category": "quality", "severity": "low", "confidence": 0.64, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Patch-style file defines a top-level symbol also defined in another source file.", "evidence": {"symbol": "Interop", "rule_id": "AIC005", "scanner": "repobility-ai-code-hygiene", "references": ["https://github.com/jendrikseipp/vulture", "https://knip.dev/"], "duplicate_file": "src/Microsoft.SqlTools.Credentials/Credentials/Linux/Interop.Errors.cs", "correlation_key": "fp|b23698398b0988de7f07bf08c00c47e5b44f81d7e44d7affe12135802d1af124"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Credentials/Credentials/OSX/Interop.Security.old.cs"}, "region": {"startLine": 1}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2273, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e40882288702a4df5c1a713bc10f378c097b869924279e2ac69ca5b7ef5af08e", "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": "src/Microsoft.SqlTools.ServiceLayer/Agent/Common/LogInterfaces.cs", "duplicate_line": 101, "correlation_key": "fp|e40882288702a4df5c1a713bc10f378c097b869924279e2ac69ca5b7ef5af08e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Agent/Jobs/JobHistoryItem.cs"}, "region": {"startLine": 9}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2272, "scanner": "repobility-ai-code-hygiene", "fingerprint": "06b254da13835e44cfaab84f7cddba7dbc9543aba4fcde09e42b4d8a952edf7f", "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": "src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype80.cs", "duplicate_line": 32, "correlation_key": "fp|06b254da13835e44cfaab84f7cddba7dbc9543aba4fcde09e42b4d8a952edf7f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Admin/Database/DatabasePrototype90.cs"}, "region": {"startLine": 30}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2271, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1db218fe21df51c2946ea73caa33981769a5c9530029fbb54c2837ea65e5b5d4", "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": "src/Microsoft.SqlTools.Credentials/HostLoader.cs", "duplicate_line": 12, "correlation_key": "fp|1db218fe21df51c2946ea73caa33981769a5c9530029fbb54c2837ea65e5b5d4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ResourceProvider/ResourceProviderHostLoader.cs"}, "region": {"startLine": 13}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2270, "scanner": "repobility-ai-code-hygiene", "fingerprint": "a3aa9588b3ec45f468ed024607dcbb1352f0ef4a4cefc3f41b7ee3e4f39be56f", "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": "src/Microsoft.SqlTools.Credentials/Localization/sr.cs", "duplicate_line": 2, "correlation_key": "fp|a3aa9588b3ec45f468ed024607dcbb1352f0ef4a4cefc3f41b7ee3e4f39be56f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ResourceProvider.DefaultImpl/Localization/sr.cs"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2269, "scanner": "repobility-ai-code-hygiene", "fingerprint": "1c9da94df5f6377a99ee67de87b7aa68db0a5428641b47256d3f48d142c864c0", "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": "src/Microsoft.SqlTools.Credentials/Localization/sr.cs", "duplicate_line": 2, "correlation_key": "fp|1c9da94df5f6377a99ee67de87b7aa68db0a5428641b47256d3f48d142c864c0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ResourceProvider.Core/Localization/sr.cs"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2268, "scanner": "repobility-ai-code-hygiene", "fingerprint": "28f4e521b8083a8e0211844fd1ebe63debacf9b860636323ff07270365634869", "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": "src/Microsoft.SqlTools.Hosting/Utility/Logger.cs", "duplicate_line": 192, "correlation_key": "fp|28f4e521b8083a8e0211844fd1ebe63debacf9b860636323ff07270365634869"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ManagedBatchParser/Utility/Logger.cs"}, "region": {"startLine": 15}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2267, "scanner": "repobility-ai-code-hygiene", "fingerprint": "e1ec3fe99fe53f23857a45261713bd423b1bca5dcb28d46f34bb30b38155b731", "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": "src/Microsoft.SqlTools.Credentials/Localization/sr.cs", "duplicate_line": 2, "correlation_key": "fp|e1ec3fe99fe53f23857a45261713bd423b1bca5dcb28d46f34bb30b38155b731"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ManagedBatchParser/Localization/sr.cs"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2266, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c57a7ede58784b5df5af9308b0ab6daa3736e056bbc3ce5c6dea75065410a355", "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": "src/Microsoft.SqlTools.Credentials/Localization/sr.cs", "duplicate_line": 2, "correlation_key": "fp|c57a7ede58784b5df5af9308b0ab6daa3736e056bbc3ce5c6dea75065410a355"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Hosting/Localization/sr.cs"}, "region": {"startLine": 2}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 2265, "scanner": "repobility-ai-code-hygiene", "fingerprint": "432574f85e157044cc486af998caba1adb7faa217072accb51d64dfff7247b7d", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "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": "src/Microsoft.SqlTools.Hosting/Hosting/Protocol/Channel/StdioClientChannel.cs", "duplicate_line": 51, "correlation_key": "fp|432574f85e157044cc486af998caba1adb7faa217072accb51d64dfff7247b7d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Hosting/Hosting/Protocol/Channel/StdioServerChannel.cs"}, "region": {"startLine": 18}}}]}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "properties": {"repobilityId": 43906, "scanner": "repobility-threat-engine", "fingerprint": "f672a6f8f077193322189e423b690c2fbd8a83682d072308a4205b8e28fd0e50", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|f672a6f8f077193322189e423b690c2fbd8a83682d072308a4205b8e28fd0e50", "aggregated_count": 4}}}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive (and 9 more): Same pattern found in 9 additional files. Review if needed."}, "properties": {"repobilityId": 35090, "scanner": "repobility-threat-engine", "fingerprint": "647d21140dcabf5c5f0d9275451adb0aa3bf8b2d6c1a8d8de202d8b34c8578f1", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 9 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|647d21140dcabf5c5f0d9275451adb0aa3bf8b2d6c1a8d8de202d8b34c8578f1", "aggregated_count": 9}}}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive: x! tells compiler \"definitely not null\" \u2014 bypasses nullable check. NRE risk if wrong."}, "properties": {"repobilityId": 35089, "scanner": "repobility-threat-engine", "fingerprint": "cd09dcb8359ef25757049a7113c42f8199068475f5987f51cdc04807ae817f24", "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": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "correlation_key": "fp|cd09dcb8359ef25757049a7113c42f8199068475f5987f51cdc04807ae817f24"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Connectors.VSCode/InternalUtilities/src/Http/HttpHeaderConstant.cs"}, "region": {"startLine": 32}}}]}, {"ruleId": "SEC128", "level": "none", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 5 more): Same pattern found in 5 additional files. Review if needed."}, "properties": {"repobilityId": 35088, "scanner": "repobility-threat-engine", "fingerprint": "dfda4170aff520d17dd79e2ba83251ca47508d2ca8ba93d0fcc46ccc46e07c8c", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 5 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|dfda4170aff520d17dd79e2ba83251ca47508d2ca8ba93d0fcc46ccc46e07c8c"}}}, {"ruleId": "SEC025", "level": "none", "message": {"text": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader (and 2 more): Same pattern found in 2 additional files. Review if needed."}, "properties": {"repobilityId": 32075, "scanner": "repobility-threat-engine", "fingerprint": "38926d6b6cfc66087ea1eb132a86cd1e7afed6536d0de46c201b22263cdcf7e5", "category": "xxe", "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": {"reason": "Deduplicated summary only: 2 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC025", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|38926d6b6cfc66087ea1eb132a86cd1e7afed6536d0de46c201b22263cdcf7e5"}}}, {"ruleId": "MINED043", "level": "none", "message": {"text": "[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data."}, "properties": {"repobilityId": 32071, "scanner": "repobility-threat-engine", "fingerprint": "e31891341c4d858567fa6614e8c7ec912413e3206bb50aafb3c993a130837462", "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|e31891341c4d858567fa6614e8c7ec912413e3206bb50aafb3c993a130837462"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ResourceProvider.Core/Firewall/FirewallErrorParser.cs"}, "region": {"startLine": 103}}}]}, {"ruleId": "SEC001", "level": "none", "message": {"text": "[SEC001] Hardcoded Password (and 3 more): Same pattern found in 3 additional files. Review if needed."}, "properties": {"repobilityId": 32069, "scanner": "repobility-threat-engine", "fingerprint": "d7a4179d7783c17d429d54e0bf6c831c06dca7e5e3dcfbc072784858793957d0", "category": "credential_exposure", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 3 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 3 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC001", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|d7a4179d7783c17d429d54e0bf6c831c06dca7e5e3dcfbc072784858793957d0"}}}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive (and 16 more): Same pattern found in 16 additional files. Review if needed."}, "properties": {"repobilityId": 32064, "scanner": "repobility-threat-engine", "fingerprint": "f15282b307ec1df14f9cc292d2c2d7e61eb58f37217027b7f2b986e2a71644a3", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 16 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|f15282b307ec1df14f9cc292d2c2d7e61eb58f37217027b7f2b986e2a71644a3", "aggregated_count": 16}}}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive: x! tells compiler \"definitely not null\" \u2014 bypasses nullable check. NRE risk if wrong."}, "properties": {"repobilityId": 32063, "scanner": "repobility-threat-engine", "fingerprint": "206b6ac7ec19f68852120e6b5757dfdecd3a16fa187e845377eb5314b5fa5a86", "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": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "correlation_key": "fp|206b6ac7ec19f68852120e6b5757dfdecd3a16fa187e845377eb5314b5fa5a86"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Connectors.VSCode/InternalUtilities/src/Http/HttpClientExtensions.cs"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive: x! tells compiler \"definitely not null\" \u2014 bypasses nullable check. NRE risk if wrong."}, "properties": {"repobilityId": 32062, "scanner": "repobility-threat-engine", "fingerprint": "e6e79e878970c938f925d833b7dd7b78f84d262fc10a0f65cbefe5293e60be31", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "correlation_key": "fp|e6e79e878970c938f925d833b7dd7b78f84d262fc10a0f65cbefe5293e60be31"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Connectors.VSCode/Core/VSCodeClientCore.ChatCompletion.cs"}, "region": {"startLine": 175}}}]}, {"ruleId": "MINED051", "level": "none", "message": {"text": "[MINED051] Csharp Null Forgive: x! tells compiler \"definitely not null\" \u2014 bypasses nullable check. NRE risk if wrong."}, "properties": {"repobilityId": 32061, "scanner": "repobility-threat-engine", "fingerprint": "447aa1b4cfb706fa04e68e1bd4749d367f0fa4b44d246bf2d9d91a7cf99531f2", "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": "csharp-null-forgive", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["csharp"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348020+00:00", "triaged_in_corpus": 12, "observations_count": 518114, "ai_coder_pattern_id": 173}, "scanner": "repobility-threat-engine", "correlation_key": "fp|447aa1b4cfb706fa04e68e1bd4749d367f0fa4b44d246bf2d9d91a7cf99531f2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Authentication/Sql/AuthenticationProvider.cs"}, "region": {"startLine": 91}}}]}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 32060, "scanner": "repobility-threat-engine", "fingerprint": "b6edddaddab6b62ff63a87b52b7d7b3bab2a5af6b4d7361c1238d18c2c6e3162", "category": "credential_exposure", "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": {"reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|b6edddaddab6b62ff63a87b52b7d7b3bab2a5af6b4d7361c1238d18c2c6e3162"}}}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "properties": {"repobilityId": 32059, "scanner": "repobility-threat-engine", "fingerprint": "1ff9e8d100a44635a364c514b597ecb30ddb551c32d57a7eeafd9ce7995cc244", "category": "credential_exposure", "severity": "info", "confidence": 0.15, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Log line appears to mention secret metadata or a redacted value rather than printing the secret", "evidence": {"match": "Logger.Verbose(\"Access token found expired.\")", "reason": "Log line appears to mention secret metadata or a redacted value rather than printing the secret", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.15, "correlation_key": "secret|token|22|logger.verbose access token found expired."}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Connection/ConnectionInfo.cs"}, "region": {"startLine": 222}}}]}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "properties": {"repobilityId": 32058, "scanner": "repobility-threat-engine", "fingerprint": "d42c244708d5ad4d2625f4712232ebf7e7600d106b8741710db90094e3577f3d", "category": "credential_exposure", "severity": "info", "confidence": 0.15, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Log message mentions credential-related metadata but does not print a credential-bearing value", "evidence": {"match": "Logger.Verbose(\"Azure token cache hit\")", "reason": "Log message mentions credential-related metadata but does not print a credential-bearing value", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.15, "correlation_key": "secret|token|5|logger.verbose azure token cache hit"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Connection/CachingTokenFetcher.cs"}, "region": {"startLine": 52}}}]}, {"ruleId": "SEC020", "level": "none", "message": {"text": "[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for troubleshooting."}, "properties": {"repobilityId": 32057, "scanner": "repobility-threat-engine", "fingerprint": "78e7f1babb9d2a7466377eca74fb12014de64165ba5accd676c88e540c9f05da", "category": "credential_exposure", "severity": "info", "confidence": 0.15, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Log message mentions credential-related metadata but does not print a credential-bearing value", "evidence": {"match": "Logger.Information($\"Registering MSAL token cache with encrypted file storage\")", "reason": "Log message mentions credential-related metadata but does not print a credential-bearing value", "rule_id": "SEC020", "scanner": "repobility-threat-engine", "confidence": 0.15, "correlation_key": "secret|token|8|logger.information registering msal token cache with encrypted file storage"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Authentication/MSALEncryptedCacheHelper.cs"}, "region": {"startLine": 85}}}]}, {"ruleId": "SEC128", "level": "none", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake) (and 24 more): Same pattern found in 24 additional files. Review if needed."}, "properties": {"repobilityId": 32053, "scanner": "repobility-threat-engine", "fingerprint": "34cd2b2e9ff71d542c1043bd538431d0f31c4a757be6d3aa7f27c5f02d9fc432", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 24 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 24 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|34cd2b2e9ff71d542c1043bd538431d0f31c4a757be6d3aa7f27c5f02d9fc432"}}}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlScriptoria.dll` committed in source repo: `bin/ref/SqlScriptoria.dll` is a .dll binary (707,104 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44327, "scanner": "repobility-supply-chain", "fingerprint": "769b4b748c62e8397013acd69b6840d9b4e8833a29a9f08e0ed045c2c787a50c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|769b4b748c62e8397013acd69b6840d9b4e8833a29a9f08e0ed045c2c787a50c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlScriptoria.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlCopilotCommon.dll` committed in source repo: `bin/ref/SqlCopilotCommon.dll` is a .dll binary (25,120 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44326, "scanner": "repobility-supply-chain", "fingerprint": "5c3e3d101208491f7477eafa53e4c74a3fd0d472793003bb54c3a72dbe7e380a", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5c3e3d101208491f7477eafa53e4c74a3fd0d472793003bb54c3a72dbe7e380a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlCopilotCommon.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Castle.Core.dll` committed in source repo: `bin/ref/Castle.Core.dll` is a .dll binary (264,192 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44325, "scanner": "repobility-supply-chain", "fingerprint": "47fd123ab4d3874faadcbabb2b46e92362697decbaeb27fdf3bee022ea5ec19c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|47fd123ab4d3874faadcbabb2b46e92362697decbaeb27fdf3bee022ea5ec19c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Castle.Core.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Moq.dll` committed in source repo: `bin/ref/Moq.dll` is a .dll binary (168,960 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44324, "scanner": "repobility-supply-chain", "fingerprint": "ccc55cc6106772e6ce57eee72ada56128eb69091496021ba9d9485a90396da67", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ccc55cc6106772e6ce57eee72ada56128eb69091496021ba9d9485a90396da67"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Moq.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlScriptoriaCommon.dll` committed in source repo: `bin/ref/SqlScriptoriaCommon.dll` is a .dll binary (16,928 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44323, "scanner": "repobility-supply-chain", "fingerprint": "f3d16ba12f8d89df996fd42207d8bc46b2c0bf520824b2c13f66d93da7f1116c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|f3d16ba12f8d89df996fd42207d8bc46b2c0bf520824b2c13f66d93da7f1116c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlScriptoriaCommon.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/ScriptoriaCommonDefs.dll` committed in source repo: `bin/ref/ScriptoriaCommonDefs.dll` is a .dll binary (29,208 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44322, "scanner": "repobility-supply-chain", "fingerprint": "5dc1fdc2151fc8b60fc4ff48347f44f0eb45ae2753a1e8ba3eb0040c441bf0ac", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5dc1fdc2151fc8b60fc4ff48347f44f0eb45ae2753a1e8ba3eb0040c441bf0ac"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/ScriptoriaCommonDefs.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Newtonsoft.Json.dll` committed in source repo: `bin/ref/Newtonsoft.Json.dll` is a .dll binary (636,416 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44321, "scanner": "repobility-supply-chain", "fingerprint": "21438d44af2fed54eb7344989b0b1ae89166c7d5652ed5afa06a55fad4e1f95c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|21438d44af2fed54eb7344989b0b1ae89166c7d5652ed5afa06a55fad4e1f95c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Newtonsoft.Json.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/YamlDotNet.dll` committed in source repo: `bin/ref/YamlDotNet.dll` is a .dll binary (287,264 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44320, "scanner": "repobility-supply-chain", "fingerprint": "13465bb64a987b879fa6198245d90ab0b8eb7149c639095b43fce4a855ad5df4", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|13465bb64a987b879fa6198245d90ab0b8eb7149c639095b43fce4a855ad5df4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/YamlDotNet.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Scriptoria.dll` committed in source repo: `bin/ref/Scriptoria.dll` is a .dll binary (229,408 bytes) committed to a repo that otherwise has 1647 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 44319, "scanner": "repobility-supply-chain", "fingerprint": "ae0e36a5c23a35a2af371ff257e8dcf7f22434b63bc2cd30a7cb8cd55a00e3ce", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|ae0e36a5c23a35a2af371ff257e8dcf7f22434b63bc2cd30a7cb8cd55a00e3ce"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Scriptoria.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 43905, "scanner": "repobility-core", "fingerprint": "0200e9918bc2a7bf9c116d0907e50ac3df640c758b93852cf1890ec6e14d870d", "category": "testing", "severity": "high", "confidence": null, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"rule_id": "CORE_NO_TESTS", "scanner": "repobility-core", "correlation_key": "repo|testing|core_no_tests"}}}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlScriptoria.dll` committed in source repo: `bin/ref/SqlScriptoria.dll` is a .dll binary (707,104 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35105, "scanner": "repobility-supply-chain", "fingerprint": "a97c99c0a2eebf795e323471cea125c0a0ab97cbc21c1a072cdd5f3f941cfa9c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|a97c99c0a2eebf795e323471cea125c0a0ab97cbc21c1a072cdd5f3f941cfa9c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlScriptoria.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlCopilotCommon.dll` committed in source repo: `bin/ref/SqlCopilotCommon.dll` is a .dll binary (25,120 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35104, "scanner": "repobility-supply-chain", "fingerprint": "90632f9479371a3eff065c6486a30584a7faff9180ae997d755ab68d3ba6e7ba", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|90632f9479371a3eff065c6486a30584a7faff9180ae997d755ab68d3ba6e7ba"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlCopilotCommon.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Castle.Core.dll` committed in source repo: `bin/ref/Castle.Core.dll` is a .dll binary (264,192 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35103, "scanner": "repobility-supply-chain", "fingerprint": "3ebba295c31e94c451c811c0251337b6804d097ba45224ba68b3a2a92ef73b2d", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|3ebba295c31e94c451c811c0251337b6804d097ba45224ba68b3a2a92ef73b2d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Castle.Core.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Moq.dll` committed in source repo: `bin/ref/Moq.dll` is a .dll binary (168,960 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35102, "scanner": "repobility-supply-chain", "fingerprint": "5224fe5d031e65c925230509ff3a0d2acb0244add5c0acf756bca3c33369fe2e", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5224fe5d031e65c925230509ff3a0d2acb0244add5c0acf756bca3c33369fe2e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Moq.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/SqlScriptoriaCommon.dll` committed in source repo: `bin/ref/SqlScriptoriaCommon.dll` is a .dll binary (16,928 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35101, "scanner": "repobility-supply-chain", "fingerprint": "b64355169dd9c5d1cbc90d53e6a3240dbfbb95c8e0fd9c68c4b340f82fe9c03c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|b64355169dd9c5d1cbc90d53e6a3240dbfbb95c8e0fd9c68c4b340f82fe9c03c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/SqlScriptoriaCommon.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/ScriptoriaCommonDefs.dll` committed in source repo: `bin/ref/ScriptoriaCommonDefs.dll` is a .dll binary (29,208 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35100, "scanner": "repobility-supply-chain", "fingerprint": "d5bf4b306447cb36fee21d79e51bea25dcc6d90ff75a68f88239c934f6c09c63", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|d5bf4b306447cb36fee21d79e51bea25dcc6d90ff75a68f88239c934f6c09c63"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/ScriptoriaCommonDefs.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Newtonsoft.Json.dll` committed in source repo: `bin/ref/Newtonsoft.Json.dll` is a .dll binary (636,416 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35099, "scanner": "repobility-supply-chain", "fingerprint": "8371c6d1627a92c457c404c4a6fb5a1bfcf56472341c0a240336d08ca6ee06f9", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|8371c6d1627a92c457c404c4a6fb5a1bfcf56472341c0a240336d08ca6ee06f9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Newtonsoft.Json.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/YamlDotNet.dll` committed in source repo: `bin/ref/YamlDotNet.dll` is a .dll binary (287,264 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35098, "scanner": "repobility-supply-chain", "fingerprint": "5ad746190bc8eb87ab9b2826c25c1cc2421f667c3369f11f5cf482951d98c83c", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|5ad746190bc8eb87ab9b2826c25c1cc2421f667c3369f11f5cf482951d98c83c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/YamlDotNet.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED134", "level": "error", "message": {"text": "[MINED134] Binary file `bin/ref/Scriptoria.dll` committed in source repo: `bin/ref/Scriptoria.dll` is a .dll binary (229,408 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts."}, "properties": {"repobilityId": 35097, "scanner": "repobility-supply-chain", "fingerprint": "cec130be6f18ff3700131ca6705c197519201ea7d705296e3b1e76415d52680a", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "fixed", "verdict": "", "isResolved": true, "reason": "", "evidence": {"mined": true, "mining": {"slug": "suspicious-binary-in-src", "owasp": null, "cwe_ids": ["CWE-506"], "languages": ["any"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|cec130be6f18ff3700131ca6705c197519201ea7d705296e3b1e76415d52680a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bin/ref/Scriptoria.dll"}, "region": {"startLine": 1}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `mshick/add-pr-comment` pinned to mutable ref `@v3`: `uses: mshick/add-pr-comment@v3` 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": {"repobilityId": 35096, "scanner": "repobility-supply-chain", "fingerprint": "4a2eee327aa8f1088c6702f4822981d53319a7adf9d70c6fd436b39cf689a3c4", "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|4a2eee327aa8f1088c6702f4822981d53319a7adf9d70c6fd436b39cf689a3c4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/packages-validation-comment.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v7`: `uses: actions/upload-artifact@v7` 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": {"repobilityId": 35095, "scanner": "repobility-supply-chain", "fingerprint": "9a0409a86c5acdc9ae412bd2da460340ff6b95a8ee1f7a44ebc1338bd9928335", "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|9a0409a86c5acdc9ae412bd2da460340ff6b95a8ee1f7a44ebc1338bd9928335"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-tests.yml"}, "region": {"startLine": 159}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `dorny/test-reporter` pinned to mutable ref `@v3`: `uses: dorny/test-reporter@v3` 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": {"repobilityId": 35094, "scanner": "repobility-supply-chain", "fingerprint": "a919ae381f84844389106ade531fc820d5d1a73d12d62a7096732f0e4f17bc62", "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|a919ae381f84844389106ade531fc820d5d1a73d12d62a7096732f0e4f17bc62"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-tests.yml"}, "region": {"startLine": 150}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v7`: `uses: actions/upload-artifact@v7` 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": {"repobilityId": 35093, "scanner": "repobility-supply-chain", "fingerprint": "c89e1f8f469933fdb79b340ea5e2daa156a91274b49dde639938159f72838c13", "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|c89e1f8f469933fdb79b340ea5e2daa156a91274b49dde639938159f72838c13"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-tests.yml"}, "region": {"startLine": 56}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/setup-dotnet` pinned to mutable ref `@v5`: `uses: actions/setup-dotnet@v5` 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": {"repobilityId": 35092, "scanner": "repobility-supply-chain", "fingerprint": "c69d20ee0c9c0e8376c9880c25077e3bde1483e296e7afca696b00a82016964b", "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|c69d20ee0c9c0e8376c9880c25077e3bde1483e296e7afca696b00a82016964b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-tests.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 35091, "scanner": "repobility-supply-chain", "fingerprint": "64b8c15fcc122a732f69374f00f58299382e49878d89d658a7222fb969b22bc0", "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|64b8c15fcc122a732f69374f00f58299382e49878d89d658a7222fb969b22bc0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/integration-tests.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "SEC025", "level": "error", "message": {"text": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader: .NET XmlDocument and XmlTextReader expand external entities by default in pre-4.5.2 runtimes (and even later if XmlResolver is left at default). Allows file disclosure and SSRF via XXE."}, "properties": {"repobilityId": 32074, "scanner": "repobility-threat-engine", "fingerprint": "01dd7eb20b5acf134f3c328132c692eefc24b40104d3974684c569ffab4e4a80", "category": "xxe", "severity": "high", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "new XmlDocument()", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC025", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|01dd7eb20b5acf134f3c328132c692eefc24b40104d3974684c569ffab4e4a80"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Management/Common/DataContainer.cs"}, "region": {"startLine": 1052}}}]}, {"ruleId": "SEC025", "level": "error", "message": {"text": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader: .NET XmlDocument and XmlTextReader expand external entities by default in pre-4.5.2 runtimes (and even later if XmlResolver is left at default). Allows file disclosure and SSRF via XXE."}, "properties": {"repobilityId": 32073, "scanner": "repobility-threat-engine", "fingerprint": "04860a6c1b4c6e591ef8b0f549e63dc0983c718677b1057e5926e3b955e0959f", "category": "xxe", "severity": "high", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "new XmlDocument()", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC025", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|04860a6c1b4c6e591ef8b0f549e63dc0983c718677b1057e5926e3b955e0959f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/ExecutionPlan/ShowPlan/XmlPlanNodeBuilder.cs"}, "region": {"startLine": 380}}}]}, {"ruleId": "SEC025", "level": "error", "message": {"text": "[SEC025] XML External Entity (XXE) \u2014 .NET XmlDocument / XmlTextReader: .NET XmlDocument and XmlTextReader expand external entities by default in pre-4.5.2 runtimes (and even later if XmlResolver is left at default). Allows file disclosure and SSRF via XXE."}, "properties": {"repobilityId": 32072, "scanner": "repobility-threat-engine", "fingerprint": "11a3af81a95b4b6d274dc997db5e4563e8ad7447b44af81741ca7131b5879405", "category": "xxe", "severity": "high", "confidence": 1.0, "triageState": "fixed", "verdict": "confirmed", "isResolved": true, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "new XmlDocument()", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC025", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|11a3af81a95b4b6d274dc997db5e4563e8ad7447b44af81741ca7131b5879405"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.ServiceLayer/Agent/AgentService.cs"}, "region": {"startLine": 1202}}}]}, {"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": 32065, "scanner": "repobility-threat-engine", "fingerprint": "1ea1bc5de2879d40c1dbdca471840a67ca29647ceae771722256172bc6c5227b", "category": "ssrf", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "Url(s", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC029", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|1ea1bc5de2879d40c1dbdca471840a67ca29647ceae771722256172bc6c5227b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Connectors.VSCode/InternalUtilities/src/Diagnostics/Verify.cs"}, "region": {"startLine": 112}}}]}, {"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": 32052, "scanner": "repobility-threat-engine", "fingerprint": "27dc437b8926956260dc4a93f2ae4b52277874981099729b042f17b18fe74a00", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "JsonSerializer.Create(\n                Constants.JsonSerializerSettings);", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|27dc437b8926956260dc4a93f2ae4b52277874981099729b042f17b18fe74a00"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Hosting/Hosting/Protocol/MessageWriter.cs"}, "region": {"startLine": 27}}}]}, {"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": 32051, "scanner": "repobility-threat-engine", "fingerprint": "f8358ea728b3d422919f74697172808ce92e76d10bd0e925bed2b404791b1e97", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "PublicClientApplicationBuilder.Create(this.configuration.AppClientId)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|f8358ea728b3d422919f74697172808ce92e76d10bd0e925bed2b404791b1e97"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Microsoft.SqlTools.Authentication/Authenticator.cs"}, "region": {"startLine": 163}}}]}, {"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": 32050, "scanner": "repobility-threat-engine", "fingerprint": "fbd6f74426a5cb89a16394c855e5bc4af508c0cb14246cd8f5808f03076f426f", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "File.Delete(FilePath);", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|fbd6f74426a5cb89a16394c855e5bc4af508c0cb14246cd8f5808f03076f426f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/samples/jsonrpc/netcore/executequery/Utility/SelfCleaningTempFile.cs"}, "region": {"startLine": 39}}}]}]}]}