Back to skill

Security audit

Act

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches event discovery and creation, but it can publish multiple public activities using web-sourced details and images without a clear final per-item approval flow.

Install only if you trust the fore.vip service and intend to let the assistant create public activity listings with your API key. Avoid bulk publishing unless you review each candidate, source, image rights, address, and time before creation; prefer user-supplied images and event details. Use a pinned or otherwise verifiable install reference where possible.

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
README.md:5
Finding

Unpinned Third-Party Installer and Mutable Skill Dependency

Content
View full analysis

Vulnerability Details

File Locations: README.md:5-9 and SKILL.md:16-20
Vulnerability Type: Supply-chain exposure through unpinned third-party dependencies
Risk Level: Medium

Complete vulnerable code snippet from README.md:5-9:

markdown
## Installation

```bash
npx skills add fore-vip/act
text

**Complete vulnerable code snippet from `SKILL.md:16-20`:**

```markdown
## Installation

```bash
npx skills add fore-vip/act
text

### Technical Analysis

The documented installation command uses `npx` to obtain and execute the npm-distributed `skills` command without pinning the CLI to a reviewed version. It also identifies the installed skill as the mutable `fore-vip/act` repository reference without specifying a release, tag, commit hash, checksum, or cryptographic signature.

Consequently, the components executed or installed when a user follows the documentation can differ from the artifact audited here. A future upstream release, compromised npm package, compromised repository, or malicious modification to the repository's default branch could introduce executable code or hostile skill instructions that were not present during this audit.

This is classified as an insecure dependency rather than confirmed malicious code. The reviewed project contains no embedded scripts or direct evidence that the current upstream package or repository is malicious.

### Attack Path

1. An attacker compromises the npm package used by `npx`, the upstream `fore-vip/act` repository, or an associated maintainer account.
2. The attacker publishes a modified CLI version or replaces content referenced by the mutable repository identifier.
3. A user follows the documented command:
   `npx skills add fore-vip/act`.
4. `npx` retrieves and executes the currently resolved CLI package, which may not be the version reviewed by the project maintainers.
5. The CLI retrieves and installs the currently resolve
...[truncated 1044 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the skills CLI to an exact reviewed version, for example by using an exact npm version rather than allowing npx to resolve the latest release.
  2. Pin fore-vip/act to an immutable commit hash or a cryptographically signed release instead of a mutable repository or default-branch reference.
  3. Publish and verify a checksum or signature for the downloaded skill artifact before installation.
  4. Configure npx so that it does not silently download and execute an unavailable package. Require explicit confirmation and document the expected package source.
  5. Lock dependency versions and review lockfile changes before publishing updated installation instructions.
  6. Run installation with the minimum necessary privileges in an isolated environment. Do not use an administrator or root account.
  7. Add the exact audited CLI version, skill revision, expected checksums, and verification procedure to both README.md and SKILL.md.
  8. Establish release signing and protected-branch controls for both the npm package and skill repository, including mandatory review and multi-factor authentication for maintainers.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (12)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The bulk workflow instructs the agent to scrape third-party event details, images, and coordinates from the open web, then republish them by creating activities in the target system. That materially broadens the tool from activity management into automated content acquisition and reposting, creating risks of misinformation, copyright misuse, spam, and unauthorized publication driven by untrusted web results.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The README instructs users to install the skill via an unpinned npx skills add fore-vip/act reference, which does not communicate a fixed version or immutable artifact. This creates a supply-chain risk: if the upstream package or registry entry changes, users may install unexpected or malicious code without noticing.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation guidance is very broad: users are told to simply describe what they want, and the AI will automatically invoke the skill. Without clear trigger boundaries, the assistant may over-activate the skill for loosely related requests, causing unintended data access, external calls, or confusing tool use beyond the user's actual intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire skill specification hardcodes Chinese prompts and expected interaction language, such as mandated questions and confirmation wording, without indicating that the user can choose another language. This creates a language/locale policy issue because it imposes a specific language by default rather than offering opt-in or documenting a necessary regional-language constraint.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill directs the agent to use external web_search to resolve coordinates from arbitrary addresses and even to rely on 'built-in geographic knowledge' when search fails. This extends the skill beyond its documented MCP API scope and can cause the agent to fetch untrusted external content, synthesize uncertain data, and act on it without a clear user warning or consent boundary.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill silently introduces external web searches and third-party image retrieval during event creation, but does not clearly warn the user that their request will cause outbound queries and downloading of remote resources. This matters because those actions expose user-supplied addresses/topics to external services and may ingest untrusted or copyrighted images into the publishing flow.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The batch-mode trigger phrases are broad enough that ordinary discovery requests like 'help me find recent Shenzhen events' could be interpreted as authorization to publish them. Weak activation boundaries are dangerous here because the skill's high-impact action is content creation on a remote service, potentially causing unintended mass posting once an API key is available.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The create_activity description says the system auto-fills type=ai, while the search_activities tool's declared enum only lists sport, culture, volunteer, and other. This creates an intent/documentation conflict about valid activity types and whether created activities fit the searchable type model.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest defines a fixed geographic region and coverage area (CN-SZ, 深圳, citywide coverage) in natural-language metadata, but does not indicate that users can opt into this locale restriction or select another locale. Under the policy, forcing a specific locale without user choice or explicit justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

All user-facing natural-language instructions and examples are presented only in Chinese, with no indication that other languages are supported or that language selection is optional. This can constitute a language/locale policy issue if the skill implicitly constrains interaction language without user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The top-level tool description says keywords only match activity title and address, but the input field description for keyword says it fuzzily matches content and address. These statements describe different search behavior and could mislead users or integrators about what data is searched.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.