T08 · Insecure Dependencies
- Location
SKILL.md:24- Finding
Unpinned and Inconsistent Third-Party Dependency Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This HomeKit skill does what it says, but it controls real smart-home devices while storing and handling pairing credentials with limited safeguards.
Review before installing. Use this only on a trusted machine and network, avoid running it against locks, garage doors, thermostats, or other safety-sensitive devices without explicit confirmation, remove pairing commands containing real PINs from shell history, and protect or delete `~/.config/homekit/pairings.json` if you stop using the skill.
SKILL.md:24Unpinned and Inconsistent Third-Party Dependency Installation
scripts/homekit.py:264HomeKit Pairing PIN Exposed Through Process Arguments
scripts/homekit.py:26Restrictive Permissions Are Not Enforced for Stored HomeKit Pairing Data
Without declared permissions the skill's intent is opaque and cannot be validated.
The documentation instructs users how to unpair HomeKit devices without warning that this action is disruptive and may remove management access until the device is re-paired, potentially affecting household automation and availability. In a smart-home control skill, destructive device-management actions are especially sensitive because they can impact safety, convenience, and operational continuity for real devices.
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.
Create ~/scripts/goodnight.sh:
#!/bin/bash
# Goodnight Scene: Turn off all lights except a dim bedside lamp
The documentation instructs an agent to discover devices on the local network, pair with them using a PIN, and change device state, but it provides no warning that these actions touch the user's LAN and can affect physical devices in the home. In an agent skill context, that omission is security-relevant because it can normalize high-impact actions without requiring explicit user awareness, confirmation, or safety boundaries.
The script persists HomeKit pairing data to a predictable file under ~/.config/homekit/pairings.json, which likely contains long-lived credentials or keys needed to control smart-home devices. There is no user-facing warning, permission check, or explicit file-permission hardening, so local compromise, shared-user environments, or backups could expose credentials that enable unauthorized device control.
Removing a pairing and immediately saving the updated pairing file is a destructive state-changing action. The code reports success afterward, but there is no prior warning or confirmation that the action will permanently remove stored access for that device.
No suspicious patterns detected.