T09 · Insecure Skill Coding Practices
Warning
- Location
- references/audit-tools.md:9
- Finding
- Potential Disclosure of Confidential Corpus Content to Third-Party Web Services## Vulnerability Details **File Location**: `references/audit-tools.md`, lines 9–29 **Vulnerability Type**: Uncontrolled transmission of potentially sensitive content to an external service **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ### Hemingway Editor Browser tool at hemingwayapp.com (or the desktop / pasteable web version). Highlights: - Sentences hard to read (yellow) and very hard (red) - Passive voice - Adverbs - Complex phrases ("utilize" → "use") - Reading grade level **Usage**: paste 1000 words. Read off the grade level. Targets per category: | Category | Target grade | | -------------------- | ------------ | | B2C / consumer brand | 6–9 | | B2B SaaS | 9–12 | | NGO / nonprofit | 7–10 | | Industry / deep-tech | 12–16 | | Consulting | 11–14 | ``` The same file also recommends additional external readability services at lines 165–171: ```markdown ## Web-based readability tests For a quick sanity check without local tooling: - **Hemingway Editor** (hemingwayapp.com) — grade level, complex sentences, passive voice, adverbs - **Datayze Sentence Length Checker** (datayze.com/sentence-length-checker) — distribution histogram - **WebFX Readability Test** (webfx.com/tools/read-able) — multiple readability scores ``` ### Technical Analysis The Skill instructs users or agents to paste 1,000 words of a content corpus into a third-party website. The corpus accepted by the Skill may contain unpublished content, ghostwritten material, internal operational information, regulated claims, or other confidential text. Although `references/discovery-questions.md` asks about confidentiality constraints, the external-tool workflow does not require the agent to apply those constraints before transmitting data. This is an insecure data-handling practice because it lacks: - Explicit user authorization fo ...[truncated 2346 chars]
- Remediation
- ## Remediation Suggestions 1. **Make local analysis the default.** Use local readability formulas and the included Python tooling rather than web-based services. 2. **Add a mandatory data-classification gate.** Before external processing, classify the selected material as public, internal, confidential, regulated, or personal. 3. **Prohibit sensitive submissions.** Explicitly forbid uploading unpublished, confidential, personal, customer-related, legally privileged, or regulated content to third-party tools. 4. **Require destination-specific consent.** Obtain explicit user approval that identifies the service, the exact text to be transmitted, and the purpose of transmission. 5. **Minimize and redact data.** Remove names, identifiers, customer information, proprietary figures, and unnecessary context. Submit only the smallest sample needed. 6. **Document third-party risks.** Warn that external services may log, process, or retain submitted text under their own privacy and retention policies. 7. **Support self-hosted alternatives.** Recommend local or self-hosted LanguageTool, Vale, and readability libraries for sensitive corpora. 8. **Restrict network tools by mode.** Avoid granting or using `WebFetch` and `WebSearch` during local corpus analysis unless external research is explicitly requested and approved. 9. **Enforce fail-closed behavior.** If sensitivity or authorization is unclear, keep all corpus processing local.
