T09 · Insecure Skill Coding Practices
- Location
SKILL.md:7- Finding
Long-Lived Access Token Transmitted to a Hard-Coded Endpoint over Plaintext HTTP
- Content
View full analysis
" "http://220.0.0.5:8123/api/camera_proxy/camera." -o /home/clawd/.openclaw/workspace/.jpg` ``` ```markdown - If MCP tools timeout, fallback to the REST API: `curl -H "Authorization: Bearer " http://220.0.0.5:8123/api/states/` ``` ### Technical Analysis The Skill instructs the Agent to transmit a Home Assistant long-lived bearer token to the hard-coded IP address `220.0.0.5` using unencrypted HTTP. Because HTTP does not provide transport confidentiality or endpoint authentication, the authorization header, requested entity identifiers, camera images, and Home Assistant responses may be observed or modified by the destination operator or an attacker positioned on the network path. A bearer token grants access based solely on possession. Any party that captures the token can reuse it until it is revoked or expires. The declared integration does not require a fixed external IP address: a generic Home Assistant Skill should obtain its endpoint from explicit user configuration and should use authenticated HTTPS. Consequently, the hard-coded destination and plaintext token transmission exceed the minimum privileges and network exposure required for the declared functionality. The use of `exec` and `curl` also bypasses protections that may exist in the native MCP integration, including endpoint restrictions, credential isolation, and structured authorization controls. ### Attack Path 1. A user installs or activates the Skill and configu ...[truncated 1403 chars]- Remediation
View remediation
