T09 · Insecure Skill Coding Practices
- Location
references/auth-setup.md:21- Finding
API Key Collection Through Ordinary Conversation
- Content
View full analysis
Vulnerability Details
File Location:
references/auth-setup.md:21-27
Vulnerability Type: Plaintext credential exposure
Risk Level: MediumVulnerable Code
markdown Ask the user exactly this, in a single message: > Do you have a TranscriptOut key already? Paste it and I'll wire it up. If not, give me an email > address and I'll open a free account for you: 100 credits included, no card asked. - If they paste a key (starts with `sk_`), go straight to **Storing the Key** below. - If they want a new account, go to **Path B**.Technical Analysis
The Skill explicitly instructs the user to paste a long-lived TranscriptOut API key into an ordinary conversation. This places the credential in the Agent's conversational context and may also expose it to conversation history, telemetry, diagnostic logs, model-provider retention, integrations, or other components with access to the session.
Receiving the secret through chat is not necessary for playlist or transcript functionality. An approved secret-entry interface or runtime secret manager could provision the environment variable without disclosing its value to the conversational context.
Attack Path
- The Skill detects that
TRANSCRIPTOUT_API_KEYis unavailable. - Following the mandatory setup text, the Agent asks the user to paste an existing key.
- The user submits the long-lived
sk_credential in the conversation. - The credential becomes part of session data and may be retained in logs or exposed to systems that process conversation history.
- An unauthorized party with access to those records recovers the key.
- The party authenticates to TranscriptOut using the recovered bearer credential.
Impact Assessment
A recovered key can allow unauthorized requests under the user's TranscriptOut account context, including consumption of available credits and access to API resources permitted by that key. The project does not establish access to local operating-system p ...[truncated 121 chars]
- The Skill detects that
- Remediation
View remediation
Remediation Suggestions
- Do not request API keys through ordinary chat messages.
- Use the Agent runtime's dedicated secret-input interface, credential broker, or secret manager.
- Ensure the secret value is delivered directly to the runtime environment without entering model context or conversation history.
- Prefer a browser-based authorization flow that returns a narrowly scoped token to a trusted credential store.
- Add explicit instructions prohibiting display, logging, or repetition of the key.
- If manual entry is unavoidable, provide a local out-of-band command or secure prompt that disables echo and bypasses conversational logging.
- Support key revocation and rotation, and advise users to rotate any key previously pasted into a conversation.
