T09 · Insecure Skill Coding Practices
- Location
scripts/analyze_financials.py:128- Finding
Untrusted Financial Data Is Rendered as Unescaped Markdown
- Content
View full analysis
= 3] if high_risk: lines.append(f"\n## ⚠️ High-Risk Stocks ({len(high_risk)} with ≥3 red flags)\n") for r in high_risk[:20]: lines.append(f"- **{r['ticker']}** ({r['name']}): " + "; ".join(r["red_flags"])) return "\n".join(lines) ``` ### Technical Analysis The `sector`, `ticker`, and `name` values originate directly from user-supplied CSV or JSON records. They are interpolated into Markdown tables and list entries without escaping Markdown metacharacters, HTML, table delimiters, or line breaks. An attacker controlling an input dataset can supply values containing: - Pipe characters and newlines that alter table structure. - Markdown links ...[truncated 1996 chars]- Remediation
View remediation
