T09 · Insecure Skill Coding Practices
- Location
assets/report-template.html:96- Finding
Unescaped Template Placeholders Permit HTML and Script Injection in Generated Reports
- Content
View full analysis
{{MODULE_NAME}}
Module conclusion:{{MODULE_CONCLUSION}}
Covered submenus
{{COVERED_MENUS}}
Formal issues
Formal ISSUE {{ISSUE_ID}}|{{ISSUE_TITLE}}{{FORMAL_ISSUE_BLOCKS}} ``` Additional raw block placeholders, including `{{MODULE_TAB_BUTTONS}}`, `{{EVIDENCE_FIGURES}}`, and `{{MODULE_SECTIONS}}`, occur elsewhere in the same template and increase the exposed rendering surface. ### Technical Analysis The HTML report template places scalar values and generated content blocks directly into executable HTML contexts. The project does not define contextual output encoding, a strict HTML sanitizer, or a trusted rendering boundary for these placeholders. UAT data can originate from an application being tested, including page titles, displayed messages, URLs, issue descriptions, actual results, and evidence captions. Such values must be treated as untrusted. If report generation replaces a placeholder verbatim, attacker-controlled markup can become active HTML. For example, a tested application could display content containing an element with an event handler. If that content is copied into `{{ACTUAL}}`, `{{ISSUE_TITLE}}`, or another placeholder without encoding, the browser may execute it when a reviewer opens the generated report. Whole-block placeholders are especially sensitive becaus ...[truncated 1461 chars]URL:{{PAGE_URL}}
Reproduction steps:{{REPRO_STEPS}}
Expected result:{{EXPECTED}}
Actual result:{{ACTUAL}}
Evidence:{{EVIDENCE_REF}}
- Remediation
View remediation
