T09 · Insecure Skill Coding Practices
Note
- Location
- references/wuwei-bayesian-v3.4.md:95
- Finding
- Invisible zero-width Unicode characters reduce instruction auditability<![CDATA[ ## Vulnerability Details **File Location**: `references/wuwei-bayesian-v3.4.md`, lines 95, 219, 231, and 237 **Vulnerability Type**: Invisible Unicode format characters in Skill documentation **Risk Level**: Low ### Vulnerable Code Snippets The invisible U+200B characters are rendered as `\u200B` below so they can be inspected: ```markdown Line 95: | **\u200B** | [table column] | [table column] | Line 219: | **\u200B** | **P≥80%** | **P 60-80%** | **P<60%** | Line 231: | **\u200B** | [optimistic] | [baseline] | [pessimistic] | Line 237: | → **Expected value** | \u200B | \u200B | \u200B | ``` The original file contains literal U+200B ZERO WIDTH SPACE characters rather than the visible escape sequences shown above. The surrounding non-English labels have been translated only for report-language compliance. ### Technical Analysis U+200B is an invisible Unicode format character. In this file, it occurs in Markdown table cells and appears to have been used as a formatting placeholder. No executable code, hidden command, remote resource, or malicious instruction was identified alongside these characters. Nevertheless, invisible format characters make source review less reliable because visually identical text can have different byte-level representations. They may interfere with exact matching, validation, content hashing, Markdown processing, or security rules that inspect visible strings. If such characters are permitted without validation, a later contributor could use similar Unicode formatting characters to conceal instruction changes or bypass simplistic text-based checks. This is classified as `T09: Insecure Skill Coding Practices` because it is a source-hygiene and reviewability weakness in Skill content. The present characters do not constitute an active code-execution payload. ### Attack Path A potential exploitation path would require a future malicious modification: 1. An attacker or compromised contributor gains permission ...[truncated 1176 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove every U+200B character and use ordinary empty Markdown cells where blank content is required. 2. Normalize all documentation as UTF-8 using Unicode NFC normalization. 3. Add a CI check that rejects unexpected Unicode control and format characters, including U+200B and characters in Unicode category `Cf`. 4. If a format character is genuinely required, document and allowlist its exact location and purpose. 5. Configure editors to display invisible characters during review. 6. Review changes at both rendered and raw-byte levels for files containing Agent instructions. 7. Re-run the check across the repository after remediation to verify that no hidden format characters remain. ]]>
