T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:74
- Finding
- Attached SBOMs may be transmitted to an external service without explicit consent## Vulnerability Details **File Location**: `SKILL.md:74-80`, `SKILL.md:115-117`, `agents/openai.yaml:7-13`, and `references/sbom-preflight.md:17-35` **Vulnerability Type**: External disclosure of potentially sensitive release metadata **Risk Level**: Medium **Relevant code snippets:** `SKILL.md:74-80` ```markdown Use one publicly fetchable HTTP(S) SBOM URL or one SBOM file attached in the conversation. Provide one source kind, not both. Do not repeat URL query strings or credentials in narration. The source must be no larger than 10 MB. Local paths, pasted SBOM bodies, data URLs, FTP or SFTP sources, cloud-drive links, and URLs requiring credentials or headers are unsupported. ### 3. Run the document-conformance check Tell the user that fetching and validating the live document can take up to 60 seconds. Call `powmcp-sbom-preflight:sbom_check` once with `url` or `file`. ``` `SKILL.md:115-117` ```markdown For before-and-after or baseline-and-candidate evidence, call `powmcp-sbom-preflight:sbom_compare` with exactly two distinct public URLs or exactly two distinct attached files, in baseline then candidate order. Tell the user that fetching and validating two live documents can take up to 60 seconds. If set, `maxDefects` must be an integer from 1 to 500; its default is 200. Correct an invalid field and retry. Duplicate builds are an argument failure, not comparison evidence. ``` `agents/openai.yaml:7-13` ```yaml dependencies: tools: - type: "mcp" value: "powmcp-sbom-preflight" description: "SBOM Check (PowMCP)" transport: "streamable_http" url: "https://powmcp.com/sbom-preflight/mcp" ``` `references/sbom-preflight.md:17-35` ```markdown ### `powmcp-sbom-preflight:sbom_check` Choose exactly one source kind: - `url`: one publicly fetchable HTTP(S) document. - `file`: one SBOM file attached in the conversation. Do not provide both. The source limit is 10 MB. ...[truncated 3022 chars]
- Remediation
- ## Remediation Suggestions 1. Before any attached file is sent, display an explicit notice identifying: - The destination domain. - That the complete SBOM contents will leave the current session. - The categories of metadata an SBOM may reveal. - Applicable retention, logging, privacy, and deletion terms. 2. Require affirmative user consent immediately before invoking the remote MCP with an attached file. Do not infer consent merely from attachment. 3. Default confidential, internal, or pre-release SBOMs to the documented local or CI validation path. 4. Disable implicit invocation for workflows that can upload files, or require a confirmation gate after implicit selection and before transmission. 5. Support data minimization where technically possible, such as local schema validation or explicitly approved redacted artifacts. 6. Document the remote service's data-processing boundaries, subprocessors, retention period, encryption controls, and deletion procedure. 7. Continue suppressing credentials and URL query strings, but clarify that this protection does not prevent disclosure of sensitive information contained inside the SBOM itself.
