Back to skill

Security audit

Uiverse Design

Security checks for vulnerabilities and agentic risk

Overview

This is a UI component library, but its optional setup script can replace reviewed local examples with unverified content downloaded from GitHub.

Use the bundled curated examples normally, but do not run scripts/setup.sh unless you trust the current upstream repository and accept that reviewed local assets will be replaced. Review downloaded or copied components before putting them into a real app, especially login, payment, upload, or externally linked snippets.

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
scripts/setup.sh:12
Finding

Unpinned and Unverified Remote Archive Replaces Reviewed Skill Assets

Content
View full analysis
&1; then tar -xzf "$TMPFILE" -C "$GALAXY_DIR" --strip-components=1 ``` ### Technical Analysis The optional setup script downloads an archive from the mutable `main` branch of an external GitHub repository. It does not pin the dependency to a reviewed commit and does not verify a cryptographic checksum or signature. Consequently, the archive contents can change after the Skill has been reviewed. The script also extracts the archive directly into the trusted `assets/galaxy` directory without validating archive member paths, symlinks, expected file types, or active HTML content. Before the download and validation complete, it recursively deletes the reviewed, bundled asset directory. A failed download or extraction can therefore leave the Skill without its original curated library. The source URL is consistent with the Skill's declared Uiverse Galaxy dependency, and the downloaded archive is not directly executed by this script. Therefore, the behavior is best classified as an insecure supply-chain dependency rather than confirmed remote code execution. Nevertheless, the Skill instructs users to copy downloaded HTML components into applications, so malicious or compromised upstream content could cross a trust boundary and become active in downstream projects. ### Attack Path 1. An attacker compromises th ...[truncated 1795 chars]
Remediation
View remediation
" REPO_URL="https://github.com/uiverse-io/galaxy/archive/${PINNED_COMMIT}.tar.gz" EXPECTED_SHA256="" TMPFILE="$(mktemp)" STAGING_DIR="$(mktemp -d)" trap 'rm -f "$TMPFILE"; rm -rf "$STAGING_DIR"' EXIT curl --fail --show-error --silent --location \ --connect-timeout 30 --max ...[truncated 319 chars]
Vulnerability Patterns
  • 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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (10)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented behavior materially exceeds the stated purpose of a curated local learning library by enabling runtime download of a much larger, unreviewed external repository and automatic replacement of bundled assets. This breaks user expectations and creates a supply-chain risk where future remote changes can alter the skill's behavior or content without review.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill advertises shell-based operations (setup.sh, search.sh) but does not declare any explicit tool scope or permissions boundary. In an agent environment, undeclared execution capability increases the risk of unintended command execution, especially because one script can fetch and replace content from external sources.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation instructs users to run a setup script that downloads content from GitHub at runtime and replaces the curated subset, expanding the trust boundary beyond reviewed local assets. Even though the note admits the content is unreviewed, normalizing this workflow can lead users or agents to ingest mutable remote content that may later become malicious or inappropriate.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Allowing unreviewed external content to be downloaded and replace bundled assets is an unjustified capability for a design-library skill whose core use case is local browsing of curated components. This introduces supply-chain and content-integrity risks disproportionate to the stated purpose, making the skill context more dangerous because users expect static, vetted examples rather than mutable remote assets.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This HTML form solicits full cardholder name, card number, expiry date, and CVV, which are highly sensitive financial data elements. The file contains no visible warning, privacy notice, or explanatory text about handling this data, and no confirmation or disclosure before the user clicks Checkout.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This HTML file presents a sign-in form that requests sensitive credentials, including an email or phone number and a password, but contains no visible notice about submission behavior, storage, or handling of that data. For a credential-collecting interface, the absence of any disclosure is a safety-relevant omission because users are prompted to enter sensitive information without contextual warning.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The visible text "Obey. Trust. Consume" is imperative natural-language content that promotes compliance-oriented messaging. In a skill asset, this can conflict with organizational policy expectations against unqualified coercive instructions, especially since no user opt-in, choice, or contextual justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

This HTML presents user-facing text labels ('Male', 'Female', 'Other') only in English. Because SQP-3 applies to all file types and covers language/locale policy violations, a fixed language UI without any opt-in or localization mechanism can conflict with organizational language-choice requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file's instructional prose is written in Chinese and presents the guidance directly in that language without indicating that users may choose another language or locale. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The header and purpose comments describe this script as a downloader for the full Uiverse Galaxy library, which implies an additive setup action. In practice, the script performs a destructive rm -rf on the target directory before recreating it, so the documentation omits and soft-contradicts the actual side effect of wiping existing contents.

Content

No source excerpt is available for this finding.