Back to skill

Security audit

Smart Hardware Reference

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a hardware-development reference library, but it tells the agent to automatically install and load another skill without user approval or a pinned trusted source.

Review this before installing if you do not already trust universal-task-os. The reference materials themselves look like ordinary smart-hardware templates, but the skill should not auto-install or load another skill without your explicit approval and a verified source/version.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:27
Finding

Unpinned Automatic Installation and Loading of an External Skill

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 27–36
Vulnerability Type: Untrusted external dependency installation
Risk Level: Medium

Vulnerable Code

markdown
## 依赖声明

本技能**强依赖** Universal Task OS (universal-task-os)。没有UTOS,本技能只有参考查阅能力,无法执行任何开发产出任务。

**加载检查流程**(每次激活时执行):

1. 检测 `universal-task-os` 技能是否已安装
2. **未安装** → 自动安装 `universal-task-os` 技能
3. **安装成功** → 同时加载UTOS,按本技能"使用规则"执行
4. **安装失败** → 降级为**只读参考模式**:

Technical Analysis

The Skill instructs the Agent to automatically install and load the external universal-task-os Skill whenever it is absent. It does not define:

  • A canonical registry or repository
  • A verified publisher identity
  • An immutable version or commit
  • A cryptographic checksum or signature
  • A dependency permission review
  • Explicit user approval before installation

Consequently, dependency resolution is based only on a mutable package name. This creates a supply-chain trust boundary: a malicious, compromised, or incorrectly resolved package could supply unreviewed instructions and behavior. The risk is amplified because the dependency is immediately loaded and delegated responsibility for document generation and pipeline execution.

No direct malicious payload or confirmed compromised dependency was found in the audited project. The vulnerability is the unsafe dependency acquisition and loading process itself.

Attack Path

  1. A user activates this Skill in an environment where universal-task-os is not installed.
  2. The activation workflow detects the missing dependency.
  3. The Agent attempts to resolve and install universal-task-os from an unspecified source.
  4. An attacker-controlled or compromised package is returned through dependency confusion, namespace takeover, registry compromise, or ambiguous source resolution.
  5. The Agent installs and immediately loads the unreviewed dependency.
  6. The malicious dependency supplies instructions or invokes tools using whatever permissions are ...[truncated 946 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove automatic dependency installation from the activation workflow.
  2. Require explicit user approval before acquiring or loading any external Skill.
  3. Specify a canonical HTTPS repository or trusted registry and verify the expected publisher identity.
  4. Pin the dependency to an immutable release version or commit hash.
  5. Publish and verify a cryptographic digest or signed release metadata before installation.
  6. Reject installation when the source, version, signature, or digest cannot be verified.
  7. Review the dependency’s instructions, scripts, permissions, and transitive dependencies before loading it.
  8. Apply least privilege by restricting the dependency to only the tools and data required for the requested task.
  9. Preserve read-only reference mode as the default fallback whenever dependency verification or user authorization is unavailable.
  10. Record the verified dependency source, version, digest, and approval decision in an audit log.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger list is extremely broad and includes generic terms such as hardware, embedded, firmware, IoT, BLE, and certification keywords that are common in normal conversations. This can cause the skill to activate outside the user's intent, pulling in domain instructions and dependency behavior in unrelated contexts, which increases the chance of unintended workflow execution or misleading authority-biased responses.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill explicitly instructs the agent to automatically install a dependent skill when missing, without user consent or a warning. Any auto-install or auto-load behavior expands the trust boundary to another package and can introduce prompt-scope, supply-chain, or privilege escalation risk, especially because the dependent skill is then used to execute downstream task orchestration.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This markdown file presents all instructions and task descriptions exclusively in Chinese, with no indication that users can select another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The title and introductory instructions are written entirely in Chinese and present the checklist as the default structure for development tasks, with no indication that users may choose another language or that the Chinese-only requirement is region-specific. This is a natural-language locale policy concern because it effectively forces a specific language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file uses only Chinese for headings, instructions, and examples, and does not indicate that users may choose another language or that the skill is intentionally restricted to a Chinese-speaking audience. Under the stated policy, forcing a specific language without user opt-in can constitute a natural-language policy violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.