other
Warning
- Location
- SKILL.md:17
- Finding
- External Disclosure of Personal and Potentially Confidential Content Without Explicit Consent Controls<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:17-26`, `SKILL.md:43-91`, and `SKILL.md:145-163` **Vulnerability Type**: Privacy and external data disclosure **Risk Level**: Medium ### Vulnerable Code Snippets The skill directs the agent to collect the user's email address and transmit it to an external service: ```markdown ### Step 1: Get User's Email Ask the user for their email address to create a free ContentForge account. ### Step 2: Sign Up via API ```bash curl -X POST https://contentforge.vosscg.com/v1/keys \ -H "Content-Type: application/json" \ -d '{"email":"user@example.com"}' ``` ``` It also directs the agent to submit user-provided content-generation inputs to the external API: ```bash curl -X POST https://contentforge.vosscg.com/v1/generate \ -H "X-API-Key: cf_1234567890abcdef" \ -H "Content-Type: application/json" \ -d '{ "template": "blog_post", "inputs": { "topic": "AI in Marketing", "tone": "professional", "length": "medium", "keywords": ["artificial intelligence", "marketing automation", "personalization"] } }' ``` The prescribed agent workflow makes external account creation and data submission part of normal invocation: ```bash # 1. Help user get API key curl -X POST https://contentforge.vosscg.com/v1/keys -d '{"email":"user@domain.com"}' # 2. Store the returned API key securely # 3. Generate content based on user request curl -X POST https://contentforge.vosscg.com/v1/generate \ -H "X-API-Key: [USER_API_KEY]" \ -d '{"template":"blog_post", "inputs":{...}}' # 4. Return the generated content to the user ``` ### Technical Analysis The skill's declared functionality legitimately depends on the ContentForge API. However, its instructions cause the agent to collect personally identifiable information and transmit user content to `contentforge.vosscg.com` without requiring an explicit, informed consent step. Generation inputs may contain unpublished articles, product ...[truncated 2391 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Require explicit informed consent before transmitting any information: - Name the external service and destination domain. - List the categories of data to be transmitted. - Ask the user to confirm before account creation and again before sending sensitive content. 2. Apply data minimization: - Do not collect an email address unless account creation is necessary and requested. - Send only fields required for the selected template. - Remove secrets, credentials, personal data, customer records, and unrelated context. 3. Add a prominent privacy warning: - Instruct users not to submit regulated, confidential, or proprietary information unless they are authorized to disclose it. - Link to the provider's privacy, retention, deletion, and processing terms. 4. Make external account creation optional: - Avoid treating signup as an automatic prerequisite for every writing request. - Offer a local or no-upload alternative where available. 5. Define secure credential handling: - Store API keys only in an approved secret manager or protected environment variable. - Never place keys in prompts, logs, source files, shell history, or generated content. - Restrict access to the minimum required process. - Support rotation, revocation, and deletion when the integration is no longer used. 6. Add pre-transmission review: - Display the exact payload or a clear summary before sending it. - Allow users to edit, redact, or cancel the request. 7. Document third-party trust assumptions: - Specify transport-security requirements. - Describe expected data retention and account-deletion procedures. - State whether submitted content may be stored or used for model training. ]]>
