T09 · Insecure Skill Coding Practices
- Location
SKILL.md:64- Finding
Potentially Sensitive Chart Data Is Uploaded with Shared Visibility by Default
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 64–68
Vulnerability Type: Insecure default data-sharing configuration
Risk Level: MediumVulnerable Code Snippet:
text 4. Preserve the user intent in `source_text` instead of rewriting the task into something unrelated. 5. Default visibility to `shared` unless the user explicitly wants `public` or `private`. 6. Do not pass `workspace_id` unless the user explicitly provides one. Let the authenticated API key determine the workspace. 7. Call the MCP tool that matches the job. 8. Return the hosted viewer URL first.Technical Analysis
The Skill instructs the agent to copy user-provided chart content into
source_text, transmit it to the external Pipintama MCP service, and create the resulting hosted chart withsharedvisibility unless the user opts out.Sending chart data to the declared external service is necessary for the hosted-chart functionality. However, defaulting the resulting resource to shared visibility exceeds the minimum access required to generate a chart. User input may contain confidential financial, business, personal, or operational information. The Skill does not require explicit consent before external transmission, sensitivity screening, redaction, or disclosure of storage and retention implications.
Shared charts may be accessible through tokenized links. Such links are bearer-like access artifacts and can be exposed through chat transcripts, browser history, application logs, analytics systems, HTTP referrer data, or accidental forwarding.
Attack Path
- A user requests a chart using confidential or sensitive values.
- The agent preserves those values in the
source_textfield. - The agent sends
source_texttohttps://api.pipintama.com/mcp. - The service creates a hosted chart with
sharedvisibility by default. - The agent returns the hosted viewer URL in the conversation.
- The URL is cop ...[truncated 772 chars]
- Remediation
View remediation
Remediation Suggestions
- Change the default visibility from
sharedtoprivate. - Require explicit user authorization before changing visibility to
sharedorpublic. - Clearly disclose that chart titles, labels, and source values will be transmitted to an external hosted service.
- Request confirmation before uploading data that may be confidential, regulated, or personally identifiable.
- Add sensitivity screening and offer to redact, aggregate, anonymize, or replace sensitive values before transmission.
- Return tokenized share links only when sharing is explicitly requested and warn users that anyone possessing such a link may be able to access the chart.
- Document the service's retention, deletion, access-token expiration, revocation, and workspace-isolation behavior.
- Avoid placing share tokens in logs or analytics, and configure appropriate referrer and cache protections where supported.
- Provide a deletion or link-revocation workflow for charts created accidentally with sensitive content.
- Change the default visibility from
