T09 · Insecure Skill Coding Practices
- Location
scripts/render-video.sh:173- Finding
Configurable Video API Endpoint Can Exfiltrate Bearer Credentials and Private Gift Content
- Content
View full analysis
&1 echo "__EXIT_CODE:$?" )" ``` ```bash TRACKING_URL="$API_BASE_URL/contents/generations/tasks/$TASK_ID" "$CURL_BIN" -fsS "$TRACKING_URL" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "Accept: application/json" 2>&1 ``` ### Technical Analysis The video renderer reads `video.api_base_url` from the mutable setup-state file and uses it without validating its scheme, hostname, port, resolved address, or relationship to the declared Volcengine provider. Although the provider field must equal `volcengine`, that check does not constrain the actual destination. Both the video-generation prompt and an `Authorization: Bearer` credential are sent to the resulting URL. The prompt is derived from user input and may contain relationship context, appearance details, or private information selected from Agent memory. The absence of endpoint validation creates two related weaknesses: 1. An attacker-controlled endpoint can collect the bearer credential and complete generation payload. 2. A local, private-network, or link-local endpoint can be targeted, creating a server-side request forgery primitive. The same unvalidated base URL is reused for task polling, allowing repeated authenticated requests. ### Attack Path 1. An attacker or another compromised process modifies `workspace/daily ...[truncated 1138 chars]- Remediation
View remediation
