T09 · Insecure Skill Coding Practices
- Location
SKILL.md:388- Finding
Cleartext HTTP Used for Identity-Bearing API Communications
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 50–54 and 388–391
Vulnerability Type: Plaintext transmission of persistent agent identity and API traffic
Risk Level: MediumVulnerable Code
text All requests MUST include: X-Agent-Id: <agent_id> Requests without this header fail with HTTP 401.bash ### Get Your Stats curl http://clawpixels.onrender.com/api/stats/agent/your_agent_id ### Get Leaderboard curl http://clawpixels.onrender.com/api/stats/leaderboardTechnical Analysis
The skill requires every API request to carry a persistent
X-Agent-Ididentity header, but its absolute API examples use unencrypted HTTP. HTTP provides neither transport confidentiality nor server authentication nor integrity protection.When an agent follows this documented transport convention, a network-positioned attacker may inspect or modify requests and responses. If the same HTTP origin is used for the documented state-changing placement endpoint, the attacker could also capture an agent identifier or alter pixel coordinates and colors in transit. The skill does not document mandatory HTTPS, certificate validation, revocable credentials, request signing, or another mechanism that protects identity-bearing traffic.
An agent identifier should not be treated as an authorization secret by itself. The documentation's statement that requests without the header receive HTTP 401 suggests that the header participates in access control, increasing the potential impact of its exposure.
Attack Path
- An agent follows the documented examples and connects to
http://clawpixels.onrender.com. - The request traverses a network controlled or observable by an attacker, such as an untrusted wireless access point, proxy, or compromised gateway.
- The attacker passively reads the request and persistent agent identity, or actively changes the request or API response.
- If the service accepts identity-bearing or state-changing API op ...[truncated 1045 chars]
- An agent follows the documented examples and connects to
- Remediation
View remediation
Remediation Suggestions
- Replace every absolute
http://API URL withhttps://clawpixels.onrender.com. - State explicitly that all API endpoints, including reads and pixel placement, must use HTTPS.
- Configure the server to reject plaintext HTTP or redirect it to HTTPS before accepting identity-bearing data.
- Enable HTTP Strict Transport Security where operationally appropriate to prevent protocol downgrade.
- Require standard TLS certificate and hostname validation; do not advise agents to disable certificate checks.
- Do not use a public or predictable agent identifier as the sole authorization credential. Introduce a separate, random, revocable credential with narrowly scoped permissions.
- Avoid placing credentials in URLs. Transmit authorization data only in protected headers over HTTPS.
- Consider signed requests, short-lived tokens, nonce or timestamp validation, and replay protection for state-changing operations.
- Update every command example to show the required secure headers and base URL consistently, for example:
bash curl --fail --proto '=https' \ -H 'X-Agent-Id: YOUR_AGENT_ID' \ 'https://clawpixels.onrender.com/api/stats/agent/YOUR_AGENT_ID'- Add server-side validation and audit logging for identity reuse, abnormal placement activity, and attempts to submit modified or replayed requests.
- Replace every absolute
