{"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": "scanner-a22a48cf3c99af68", "name": "Insecure pattern 'direct_innerhtml_assignment' in parcerias.html:641", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in parcerias.html:641"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98acfcb33fba3da7", "name": "Insecure pattern 'direct_innerhtml_assignment' in login.html:252", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in login.html:252"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db369f6dae14a405", "name": "Insecure pattern 'direct_innerhtml_assignment' in dashboard-admin.html:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard-admin.html:200"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f288481b395df6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in app.html:1104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app.html:1104"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-12160af7a2ae731f", "name": "Insecure pattern 'direct_outerhtml_assignment' in app.html:2237", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in app.html:2237"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21a4467581895151", "name": "Insecure pattern 'insert_adjacent_html' in app.html:1100", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in app.html:1100"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec322413b09c2bf0", "name": "Insecure pattern 'direct_innerhtml_assignment' in roteiros.html:436", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in roteiros.html:436"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40a883b08d545b72", "name": "Insecure pattern 'direct_innerhtml_assignment' in projeto.html:147", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in projeto.html:147"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a67115d52a17579e", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:372", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:372"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3989e4a12284a3e7", "name": "Insecure pattern 'cors_wildcard' in edge-function-assistente.ts:4", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in edge-function-assistente.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0cb5bf94fed8d8c3", "name": "Insecure pattern 'direct_innerhtml_assignment' in bio.html:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bio.html:82"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3387de3dab286bc", "name": "Insecure pattern 'direct_outerhtml_assignment' in bio.html:81", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in bio.html:81"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3ed68815bca2f8c", "name": "Node manifest has dependencies but no lockfile: package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, operator-readme, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-081c5d10fbddb23e", "name": "Commented-code block (5 lines) in sw.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in sw.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8becc50113f54fd3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 edge-function-assistente.ts:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 edge-function-assistente.ts:77"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/25588"}, "properties": {"repository": "editorflowpro-a11y/editor-flow-pro", "repoUrl": "https://github.com/editorflowpro-a11y/editor-flow-pro", "branch": "main"}, "results": [{"ruleId": "scanner-a22a48cf3c99af68", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in parcerias.html:641"}, "properties": {"repobilityId": "8e10896894474a5b", "scanner": "scanner-primary", "fingerprint": "a22a48cf3c99af68", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "parcerias.html"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-98acfcb33fba3da7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in login.html:252"}, "properties": {"repobilityId": "617b51c994b02988", "scanner": "scanner-primary", "fingerprint": "98acfcb33fba3da7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "login.html"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-db369f6dae14a405", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard-admin.html:200"}, "properties": {"repobilityId": "1e43b925570c347e", "scanner": "scanner-primary", "fingerprint": "db369f6dae14a405", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard-admin.html"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-9f288481b395df6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app.html:1104"}, "properties": {"repobilityId": "4e4017026c94f619", "scanner": "scanner-primary", "fingerprint": "9f288481b395df6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.html"}, "region": {"startLine": 1104}}}]}, {"ruleId": "scanner-12160af7a2ae731f", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in app.html:2237"}, "properties": {"repobilityId": "11a59d584f4e0cb6", "scanner": "scanner-primary", "fingerprint": "12160af7a2ae731f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.html"}, "region": {"startLine": 2237}}}]}, {"ruleId": "scanner-21a4467581895151", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in app.html:1100"}, "properties": {"repobilityId": "98e0ee3d69c1841c", "scanner": "scanner-primary", "fingerprint": "21a4467581895151", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.html"}, "region": {"startLine": 1100}}}]}, {"ruleId": "scanner-ec322413b09c2bf0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in roteiros.html:436"}, "properties": {"repobilityId": "fcfeb0f3137e0b82", "scanner": "scanner-primary", "fingerprint": "ec322413b09c2bf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roteiros.html"}, "region": {"startLine": 436}}}]}, {"ruleId": "scanner-40a883b08d545b72", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in projeto.html:147"}, "properties": {"repobilityId": "86b64c32f6b9f3e2", "scanner": "scanner-primary", "fingerprint": "40a883b08d545b72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "projeto.html"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-a67115d52a17579e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:372"}, "properties": {"repobilityId": "6ce12d2fb0d90b99", "scanner": "scanner-primary", "fingerprint": "a67115d52a17579e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin.html"}, "region": {"startLine": 372}}}]}, {"ruleId": "scanner-3989e4a12284a3e7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in edge-function-assistente.ts:4"}, "properties": {"repobilityId": "db5a42e8759d980c", "scanner": "scanner-primary", "fingerprint": "3989e4a12284a3e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "edge-function-assistente.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-0cb5bf94fed8d8c3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bio.html:82"}, "properties": {"repobilityId": "8a2c99f89bcfb753", "scanner": "scanner-primary", "fingerprint": "0cb5bf94fed8d8c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bio.html"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-f3387de3dab286bc", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in bio.html:81"}, "properties": {"repobilityId": "c9143b0a414f13e3", "scanner": "scanner-primary", "fingerprint": "f3387de3dab286bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bio.html"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "30080b1256118df4", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "00bec2135e2e5211", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b3ed68815bca2f8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "properties": {"repobilityId": "7edae0550c126386", "scanner": "scanner-primary", "fingerprint": "b3ed68815bca2f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "8ad02cf43563113f", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-081c5d10fbddb23e", "level": "none", "message": {"text": "Commented-code block (5 lines) in sw.js:1"}, "properties": {"repobilityId": "9a4766a64492e144", "scanner": "scanner-primary", "fingerprint": "081c5d10fbddb23e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8becc50113f54fd3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 edge-function-assistente.ts:77"}, "properties": {"repobilityId": "a2862c081eed3a17", "scanner": "scanner-primary", "fingerprint": "8becc50113f54fd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}