T09 · Insecure Skill Coding Practices
- Location
SKILL.md:35- Finding
Unvalidated External Service URL Enables Sensitive Data Exfiltration and Potential SSRF
- Content
View full analysis
" }` 2. Show the API response to the user 3. Do NOT write to memory files instead of calling the API 4. Do NOT say "saya sudah mencatat" or simulate the result — the API is the system of record 5. Do NOT use `` tags or narrate what you "would" do If `IRONCLAW_SERVICE_URL` is not set, stop and tell the user: > "IRONCLAW_SERVICE_URL belum dikonfigurasi di environment variables." ``` The same destination is used for all commands: ```markdown All commands are dispatched via `POST ${IRONCLAW_SERVICE_URL}/commands` with body `{ "command": "" }`. ``` The automatic routing scope is intentionally broad: ```markdown **Key rule:** If the user says they will do something in N minutes/hours — regardless of whether it is work, travel, rest, or anything else — create a mission with that ETA. Do NOT skip this because the activity seems non-work-related. ``` ### Technical Analysis The skill mandates immediate transmission of generated commands to an endpoint controlled entirely by the `IRONCLAW_SERVICE_URL` environment variable. It does not impose: - An HTTPS requirement - A trusted-host or domain allowlist - IP address or private-network restrictions - Endpoint identity verification - Request authentication - User confirmation before the first disclosure - Restrictions on sensitive notes, sleep details, schedules, or activity descriptions The broad natural-language triggers cause ordinary statements about work, travel, rest, sleep, and personal routines to be converted into o ...[truncated 2244 chars]- Remediation
View remediation
