Back to skill

Security audit

Widgets Ui

Security checks for vulnerabilities and agentic risk

Overview

This widget UI skill is coherent, but it asks users to install mutable remote packages and related skills without version pins, so users should review it before use.

Install only after reviewing the fetched component code and any related skills. Prefer pinned package versions, immutable commit hashes, or checksums, and run installation in a low-privilege development environment without unnecessary secrets in the environment.

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 (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:14
Finding
Unpinned Third-Party Package and Remote Component Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 14-16 **Vulnerability Type**: Unpinned third-party dependency and mutable remote component installation **Risk Level**: Medium ### Vulnerable Code ```bash npx shadcn@latest add https://ui.inference.sh/r/widgets.json ``` ### Technical Analysis The documented command invokes `npx` with the mutable `shadcn@latest` package tag and retrieves component definitions from an external URL. `npx` can download and execute a package when the requested version is not already available locally. The `latest` tag does not identify an immutable, previously audited release. The component registry URL is also mutable and is not accompanied by a cryptographic checksum, signed release, fixed commit identifier, or other integrity control. Consequently, the code installed by this command can differ from the code reviewed when the Skill was published. This is a supply-chain weakness rather than evidence that the current upstream package or component is malicious. Exploitation requires compromise or malicious modification of the package, package-publishing account, registry service, DNS or delivery infrastructure, or another trusted upstream source. ### Attack Path 1. An attacker compromises an upstream package publisher, the remote component registry, or its delivery infrastructure. 2. The attacker publishes a malicious package as the version referenced by `latest`, or modifies the response returned by `https://ui.inference.sh/r/widgets.json`. 3. A user follows the Skill documentation and executes the command. 4. `npx` downloads and runs the mutable package, which then retrieves and installs the remote component. 5. Attacker-controlled installation logic or generated source code executes immediately or later during development, build, or application runtime. ### Impact Assessment Successful exploitation could execute code with the privileges of the developer running `npx`. Depending on that account's access and the ...[truncated 513 chars]
Remediation
## Remediation Suggestions - Replace `shadcn@latest` with an exact, reviewed package version. - Pin the remote component to an immutable, versioned artifact rather than a mutable registry endpoint. - Publish and verify a SHA-256 or stronger cryptographic checksum before integrating downloaded content. - Prefer signed releases and verify package provenance or signatures where supported. - Download and review generated component code before executing builds or committing it to the project. - Use lockfiles, trusted package registries, and restricted installation environments. - Run installation with a minimally privileged account and without unnecessary credentials in the environment. - Add dependency and generated-code scanning to CI before release.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:145
Finding
Unpinned Installation of Related Skills from an External Repository## Vulnerability Details **File Location**: `SKILL.md`, lines 145-153 **Vulnerability Type**: Unpinned external Skill dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # Full agent component npx skills add inference-sh/skills@agent-ui # Chat UI blocks npx skills add inference-sh/skills@chat-ui # Tool UI npx skills add inference-sh/skills@tools-ui ``` ### Technical Analysis These commands invoke the `skills` package through `npx` and install three externally maintained Skills without specifying an immutable package version, repository commit, release digest, or checksum. Both the command runner and the referenced Skill content may therefore change after this project has been audited. If the package publisher, referenced repository, distribution channel, or maintainer account is compromised, a subsequent installation may retrieve different instructions, scripts, or components. Because Skills can influence agent behavior and may include executable supporting content, reviewing only the current `SKILL.md` does not establish the safety of future content fetched by these commands. No evidence in the audited file demonstrates that the currently referenced Skills are malicious. The risk arises from the absence of version and integrity controls. ### Attack Path 1. An attacker gains control of the `skills` package distribution channel, the `inference-sh/skills` repository, a maintainer account, or associated delivery infrastructure. 2. The attacker modifies one of the referenced Skill targets or substitutes a malicious release. 3. A user executes one of the documented `npx skills add` commands. 4. The command retrieves the current, unpinned external content rather than a fixed audited revision. 5. The malicious Skill content is installed and may affect agent instructions or execute supporting code when subsequently loaded or invoked. ### Impact Assessment Successful exploitation could modify the local project or Skill installation and introduce ...[truncated 599 chars]
Remediation
## Remediation Suggestions - Pin every related Skill to a reviewed, immutable commit hash or signed release. - Pin the `skills` command-line package to an exact version instead of allowing `npx` to resolve a mutable version. - Record and verify checksums for downloaded Skill artifacts. - Review external Skill instructions and all included scripts before installation or activation. - Maintain an approved internal mirror or vendored copy of reviewed dependencies. - Use lockfiles and automated provenance, signature, dependency, and malware checks in CI. - Install external Skills in a sandbox with minimal filesystem, network, credential, and tool access. - Establish an update process requiring security review before changing pinned revisions.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list is broad and includes generic phrases such as `widgets`, `dynamic ui`, and `structured output ui`, which are likely to match many ordinary user requests. Over-broad activation increases the chance this skill is invoked unintentionally, causing unexpected remote-install guidance or UI-generation behavior in contexts where it was not specifically requested.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The skill instructs users to run `npx shadcn@latest add https://ui.inference.sh/r/widgets.json`, which pulls and executes remote package logic and remote registry content without pinning to a specific immutable version. If the package, tag, or remote registry content changes or is compromised, users could install altered code or templates unexpectedly, creating a supply-chain risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding
The command `npx skills add inference-sh/skills@agent-ui` references a remotely resolved package/resource without an immutable version pin. This allows future upstream changes or compromise of the referenced package/tag to affect consumers at install time, which is a classic supply-chain exposure.

Rp1

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding
The `npx skills add inference-sh/skills@chat-ui` command uses an unpinned remote reference, so consumers may fetch different content over time. An attacker controlling or compromising the upstream source could deliver modified skill content or code to downstream users.

Rp1

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding
The `npx skills add inference-sh/skills@tools-ui` instruction pulls a remote skill reference without pinning it to a stable immutable version. That makes builds non-reproducible and exposes users to upstream tampering or accidental breaking changes.