T03 · Remote Payload Retrieval and Execution
- Location
scripts/setup-realtime-viewer.sh:23- Finding
Mutable External Viewer Code Is Retrieved and Executed with API Secrets Available
- Content
View full analysis
&2 exit 2 else (cd "$DEST" && git pull --ff-only) || echo "(warn) git pull failed — continuing" fi cd "$DEST" TMP_ENV="$(mktemp)" trap 'rm -f "$TMP_ENV"' EXIT { printf 'ATLAS_API_KEY=%s\n' "$ATLAS_API_KEY" printf 'ATLAS_API_URL=%s\n' "$BASE" } >"$TMP_ENV" for v in LLM_API_KEY LLM_BASE_URL LLM_MODEL ELEVENLABS_API_KEY ELEVENLABS_VOICE_ID; do eval "val=\${$v:-}" if [[ -n "${val}" ]]; then printf '%s=%s\n' "$v" "$val" >>"$TMP_ENV" fi done mv "$TMP_ENV" .env.local trap - EXIT chmod 600 .env.local || true echo "== npm install (may take a minute)" npm install ``` ### Technical Analysis The setup process clones or updates a remote Git repository without pinning a reviewed commit, tag, or content digest. The effective code executed by the Skill can therefore change after the Skill package itself has been reviewed. The `ATLAS_REALTIME_EXAMPLE_GIT` environment variable also permits the source repository to be replaced with an arbitrary URL. After retrieval, the script writes `ATLAS_API_KEY` and optional LLM and ElevenLabs credentials into `.env.local`, then invokes `npm install`. npm installation can execute lifecycle scripts declared by the retrieved project or its dependencies. Such scripts run with the invoking user's o ...[truncated 2132 chars]- Remediation
View remediation
