T05 · Unauthorized Access and Privilege Escalation
- Location
wyoming_clawdbot.py:66- Finding
Unauthenticated Network Exposure of the Clawdbot Agent
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This bridge is purpose-aligned, but its default deployment exposes a Clawdbot-powered voice service too broadly and handles sensitive voice data with weak containment.
Review this before installing on a real Home Assistant network. Prefer binding the service to `127.0.0.1` or a trusted interface, restrict the port with a firewall, use a dedicated least-privileged Clawdbot account/config, make any config mount read-only and narrow, avoid host networking where possible, remove transcript and response body logging, and pin dependencies. Do not expose this service to untrusted LANs or the internet without authentication.
wyoming_clawdbot.py:66Unauthenticated Network Exposure of the Clawdbot Agent
docker-compose.yml:7Excessive Container Access Through Host Networking and Sensitive Read-Write Mount
wyoming_clawdbot.py:69Voice Transcripts and AI Responses Written to Plaintext Logs
requirements.txt:1Unbounded and Unhashed Third-Party Dependency
The README explicitly states that spoken user input is sent from Home Assistant through this bridge to Clawdbot, but it does not warn users that voice transcripts and potentially sensitive household commands may leave the local Home Assistant environment and be processed by a third-party AI service. In a voice-assistant context, this omission is security-relevant because users may reasonably assume local handling unless data-sharing and retention are clearly disclosed.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Then:
sudo systemctl daemon-reload
sudo systemctl enable wyoming-clawdbot
sudo systemctl start wyoming-clawdbot
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Then:
sudo systemctl daemon-reload
sudo systemctl enable wyoming-clawdbot
sudo systemctl start wyoming-clawdbot
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Then:
sudo systemctl daemon-reload
sudo systemctl enable wyoming-clawdbot
sudo systemctl start wyoming-clawdbot
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
sudo systemctl daemon-reload
sudo systemctl enable wyoming-clawdbot
sudo systemctl start wyoming-clawdbot
The skill advertises shell-based setup and operation behavior but does not declare any explicit tool scope or permissions boundary in the skill metadata. This creates ambiguity about what code-execution capabilities are required and increases the risk of over-privileged execution or unexpected command use when the skill is consumed by an agent framework.
The skill explicitly states that voice commands are forwarded from Home Assistant to Clawdbot, but it does not warn users that spoken content may be transmitted to another service or process. Voice input can contain sensitive household, personal, or authentication-related information, so undisclosed forwarding creates a meaningful privacy and data-handling risk.
The service logs full transcript contents at INFO level, which can capture sensitive voice data such as passwords, names, addresses, or private conversations in plaintext logs. In a Home Assistant voice-assistant context, this is more dangerous because transcripts may routinely contain highly personal household data and logs are often retained, aggregated, or exposed to administrators and support tooling.
The manifest describes a Wyoming Protocol bridge for Home Assistant voice assistant integration, which implies protocol translation and request forwarding behavior. This code additionally spawns the local clawdbot executable via asyncio.create_subprocess_exec, introducing process-execution capability that is not explicitly justified by the bridge description itself.
The dependency is specified with only a lower bound (wyoming>=1.5.0), which allows installation of any newer version, including breaking or compromised releases. This weakens supply-chain integrity and reproducibility because builds may resolve to different versions over time, increasing the chance of unexpected vulnerable or malicious code being pulled in.
wyoming>=1.5.0
The hardcoded error prefix "Ошибка" makes at least one user-visible response Russian regardless of the user's preferred language. This is a natural-language locale policy issue because the skill otherwise presents itself as multilingual and does not document or request a Russian-only error mode.
No suspicious patterns detected.