T09 · Insecure Skill Coding Practices
- Location
scripts/huawei_cloud/ops_report_generator.py:42- Finding
Arbitrary Local File Disclosure Through On-Call Report Input
- Content
View full analysis
Optional[str]: if not path: return None candidate = Path(path) if not candidate.exists(): return None try: return candidate.read_text(encoding="utf-8") except OSError: return None def _extract_oncall(oncall_report_path: Optional[str], oncall_summary: Optional[str]) -> Dict[str, Any]: if oncall_summary: return { "status": "provided", "source": "inline", "summary": oncall_summary.strip(), "details": None, } if not oncall_report_path: return { "status": "missing", "source": None, "summary": "oncall-copilot report not provided", "details": None, } path = Path(oncall_report_path) if not path.exists(): return { "status": "missing", "source": str(path), "summary": "oncall-copilot report path does not exist", "details": None, } try: if path.suffix.lower() == ".json": payload = json.loads(path.read_text(encoding="utf-8")) summary = payload.get("summary") if isinstance(payload, dict) else None return { "status": "provided", "source": str(path), "summary": str(summary) if summary else "oncall-copilot JSON loaded", "details": payload, } content = path.read_text(encoding="utf-8") except (OSError, json.JSONDecodeError) as exc: return { "status": "error", "source": str(path), "summary": f"failed to read oncall-copilot report: {exc}", "details": None, } snippet = conten ...[truncated 2233 chars]- Remediation
View remediation
