Back to skill

Security audit

Home Assistant

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly transparent and purpose-aligned for Home Assistant control, but its fallback setup tells the agent to run remote installer scripts directly in a shell.

Review this before installing if you are not comfortable with an agent controlling Home Assistant devices or changing automations. Prefer installing the oo CLI through a verified package or reviewed installer, then connect Home Assistant with the minimum scopes needed and require explicit approval for destructive actions.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (11)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 41)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 42)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 43)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 44)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 47)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 53)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 54)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 65)May include surrounding context.

md
## Available actions

- `call_service` — Call a Home Assistant service to control entities, such as light.turn_on or switch.turn_off. [destructive]
- `check_config` — Ask Home Assistant to validate its own configuration files and report errors and warnings. Requires an admin access token.
- `delete_automation_config` — Delete one Home Assistant automation. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_scene_config` — Delete one Home Assistant scene. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]
- `delete_script_config` — Delete one Home Assistant script. Requires an admin access token, and only covers entries stored in the Home Assistant UI-editable config; entries defined in other YAML files return not found. [destructive]

External Script Fetching

High
Category
Supply Chain
Confidence
94% confidence
Finding

The skill instructs the agent to install software via a remote script piped directly into the shell (curl ... | bash). If the remote host, transport, DNS, CDN, or published script is compromised, arbitrary code will execute immediately on the user's system with the agent's privileges, making this a serious supply-chain and remote code execution risk.

Content

Scanner excerpt · SKILL.md (reported line 82)May include surrounding context.

Static analysis

No suspicious patterns detected.