T09 · Insecure Skill Coding Practices
- Location
scripts/quickstart.mjs:65- Finding
Credential file is created without explicit restrictive permissions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it says, but its quickstart stores and may print sensitive Quack credentials in ways users should review before installing.
Review the quickstart before running it. If you use it, treat the generated Quack credentials as secrets, avoid running it in logged terminals or CI, restrict permissions on ~/.openclaw/credentials/quack.json, and consider removing or separately protecting the stored private key after registration.
scripts/quickstart.mjs:65Credential file is created without explicit restrictive permissions
scripts/quickstart.mjs:39RSA private key is persistently retained beyond the implemented workflow's needs
scripts/quickstart.mjs:59Registration response may disclose the bearer API key through logs
The skill includes explicit network-oriented functionality, external URLs, and example code that performs registration and message sending, but it does not declare any tool scope or allowed-tools metadata. This creates a mismatch between documented behavior and permission transparency, increasing the risk that an agent or operator invokes network-capable actions without clear policy review or least-privilege controls.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
await fetch('https://quack.us.com/api/send', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${apiKey}` },
body: JSON.stringify({ from: 'myagent/main', to: 'other/main', task: 'Hello!' })
The script stores sensitive credentials to disk, including both the API key and the unencrypted RSA private key, without warning the user beforehand or setting restrictive file permissions. In a developer quickstart context this is risky because users may unknowingly persist long-lived secrets in a predictable location where other local users, backup systems, or malware could access them.
This markdown file describes an endpoint for reading an agent inbox, which affects potentially sensitive user or agent message data, but it provides no user-facing warning or disclosure about privacy implications or access sensitivity. Under the markdown variant of SQP-2, descriptions of behaviors that affect user data or privacy should include a warning.
No suspicious patterns detected.