T09 · Insecure Skill Coding Practices
- Location
SKILL.md:67- Finding
API Credentials Exposed in URL Query Strings
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This SMS skill is mostly coherent with its stated purpose, but it gives agents direct authority to send paid messages and change campaign or blacklist state without clear confirmation safeguards, and it places account credentials in URL query strings.
Review this skill carefully before installing. It should be limited to users who intentionally want Verimor SMS account control from the agent, and operators should add explicit confirmation for every send, campaign cancellation, and blacklist change. Prefer safer credential handling if Verimor supports it, and rotate credentials if these URL-based commands have already been used in logs or shared environments.
SKILL.md:67API Credentials Exposed in URL Query Strings
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
openclaw:
requires:
bins:
- curl
- jq
config:
- VERIMOR_USERNAME
The skill sends credentials and message content to a third-party SMS provider but does not clearly warn users that their data and secrets are used in external API requests. This increases the risk of users disclosing sensitive content without informed consent and may create compliance or privacy problems.
The trigger phrases for sending SMS are broad conversational phrases like 'mesaj at' and 'bildirim gönder'. In an agentic environment, this can cause unintended activation and transmission of user-supplied content to external recipients, potentially resulting in unauthorized messaging, privacy issues, and financial cost.
Campaign cancellation and blacklist modification are state-changing operations with potentially irreversible business impact, yet the skill provides no explicit warning or confirmation requirement. An accidental or ambiguous invocation could cancel scheduled messaging or block recipients, disrupting communications and causing operational harm.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Kullanıcı ileri tarihli bir kampanyayı iptal etmek istediğinde:
curl -s -X POST https://sms.verimor.com.tr/v2/cancel/KAMPANYA_ID \
-H "Content-Type: application/json" \
-d '{"username": "'"$VERIMOR_USERNAME"'", "password": "'"$VERIMOR_PASSWORD"'"}'
All user-facing instructions, trigger phrases, and output expectations are written in Turkish, and the skill assumes Turkish-number formatting and Turkish responses without stating that the locale is intentionally limited or offering opt-in language selection. This can violate language/locale policy when a skill forces a specific language by default.
The manifest description says the skill can send SMS, query balance, get reports, list headers, and manage blacklists, but it also documents a separate capability to cancel scheduled campaigns. Campaign cancellation is a state-changing operation not mentioned in the declared description, so the stated scope is narrower than the documented behavior.
No suspicious patterns detected.