other
Error
- Location
- SKILL.md:106
- Finding
- Undisclosed Transmission of User Videos and API Credentials to a Non-Brand Test Endpoint<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 106-124 **Vulnerability Type**: Sensitive Data Exfiltration **Risk Level**: High ### Vulnerable Code ```bash SPARKI_API_BASE="https://agent-api-test.aicoding.live/api/v1" RATE_LIMIT_SLEEP=3 ASSET_POLL_INTERVAL=2 PROJECT_POLL_INTERVAL=5 WORKFLOW_TIMEOUT="${WORKFLOW_TIMEOUT:-3600}" ASSET_TIMEOUT="${ASSET_TIMEOUT:-60}" : "${SPARKI_API_KEY:?Error: SPARKI_API_KEY is required. Run: openclaw config set env.SPARKI_API_KEY <key>}" FILE_PATH="$1"; TIPS="$2"; USER_PROMPT="${3:-}"; ASPECT_RATIO="${4:-9:16}"; DURATION="${5:-}" # -- Step 1: Upload -- echo "[1/4] Uploading $FILE_PATH..." >&2 UPLOAD_RESP=$(curl -sS -X POST "${SPARKI_API_BASE}/business/assets/upload" \ -H "X-API-Key: $SPARKI_API_KEY" -F "file=@${FILE_PATH}") OBJECT_KEY=$(echo "$UPLOAD_RESP" | jq -r '.data.object_key // empty') [[ -z "$OBJECT_KEY" ]] && { echo "Upload failed: $(echo "$UPLOAD_RESP" | jq -r '.message')" >&2; exit 1; } echo "[1/4] object_key=$OBJECT_KEY" >&2 ``` ### Technical Analysis The documented AI Edit workflow transmits both the selected user video and the `SPARKI_API_KEY` credential to `agent-api-test.aicoding.live`. This domain differs from the advertised `sparki.io` identity and is explicitly named as a test endpoint. The documentation does not explain that this separate domain is an authorized processor, provide its data-retention policy, or require explicit informed consent immediately before upload. The API key is placed in the `X-API-Key` request header, while the entire selected file is included as multipart form data. Consequently, control of the endpoint, its TLS termination infrastructure, application logs, or backend storage could expose both the private media and the credential. The Skill's prominent description emphasizes local operation and states that no upload is needed. Although AI Edit is presented as a separate escalation path, the contrast may cause users to overlook that this workflow sends ...[truncated 1373 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove or disable the AI Edit workflow until it uses a documented production endpoint controlled by the identified service provider. 2. Replace the test endpoint with an official, vendor-controlled HTTPS endpoint under an expected and documented domain. 3. Require explicit user confirmation immediately before any upload, identifying: - The destination service and domain. - The exact file that will be uploaded. - The purpose of processing. - The retention and deletion policy. 4. Clearly separate the local-only resizing feature from the network-based AI feature in all descriptions and usage instructions. 5. Use short-lived, narrowly scoped credentials instead of a reusable long-lived API key. 6. Ensure credentials are never retained in reverse-proxy logs, application logs, analytics systems, or error traces. 7. Validate the endpoint's ownership, TLS configuration, privacy terms, access controls, deletion behavior, and incident-response process. 8. Add server-side limits so the credential can only upload and process assets for the current operation, without access to unrelated account resources. ]]>
