Back to skill

Security audit

LINE 貼圖生成大師

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent LINE sticker workflow, but it tells users to run an unpinned third-party npm project, which creates local code-execution supply-chain risk.

Install this skill only if you are comfortable reviewing or isolating the referenced line-sticker-factory project before running npm commands. Prefer a pinned commit or release, use a clean throwaway environment, and avoid exposing production credentials or sensitive files while running the external tool.

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:58
Finding

Unverified Mutable Third-Party Repository Is Installed with npm

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:58-61 and README.md:89-93
Vulnerability Type: Third-party supply-chain exposure through an unpinned repository and npm lifecycle execution
Risk Level: Medium

Vulnerable Code

SKILL.md:58-61:

bash
cd /home/ubuntu/line-sticker-factory
npm install
npm run dev

README.md:89-93:

bash
git clone https://github.com/qpooqp777/line-sticker-factory.git
cd line-sticker-factory
npm install
npm run dev

Technical Analysis

The documented integration procedure clones the current default branch of an external GitHub repository without pinning a reviewed commit or signed release. It then runs npm install, which resolves third-party packages and may execute npm lifecycle scripts such as preinstall, install, and postinstall.

Consequently, the code executed by this workflow can change after this Skill package has been audited. The effective installation payload depends on the current state of the external repository, its lockfile, the npm registry, and its transitive dependencies. Compromise of the referenced repository, a maintainer account, or a dependency release could introduce arbitrary installation-time code.

The Skill does not itself contain or automatically execute a malicious payload. The risk becomes exploitable only when a user follows the documented commands.

Attack Path

  1. An attacker compromises the referenced line-sticker-factory repository, a maintainer account, or one of its npm dependencies.
  2. The attacker modifies the default branch, dependency metadata, lockfile, or an npm lifecycle script to include malicious code.
  3. A user follows the Skill documentation and clones the repository without selecting a reviewed commit or immutable release.
  4. The user runs npm install; npm resolves the attacker-controlled dependency state and executes applicable lifecycle scripts.
  5. The malicious script executes ...[truncated 910 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the integration repository to a reviewed immutable commit hash or a verified signed release instead of using the mutable default branch.
  2. Publish and document the expected commit hash and verify the checkout before installation:
    bash
    git clone https://github.com/qpooqp777/line-sticker-factory.git
    cd line-sticker-factory
    git checkout --detach <reviewed-commit-sha>
    test "$(git rev-parse HEAD)" = "<reviewed-commit-sha>"
    
  3. Require a committed lockfile and use npm ci rather than npm install to prevent unreviewed dependency resolution changes.
  4. Review npm lifecycle scripts and initially install with npm ci --ignore-scripts where compatible. Run only explicitly required scripts after inspection.
  5. Verify release signatures, checksums, or provenance attestations before installation.
  6. Run the external application in an isolated, unprivileged container or temporary development environment without production credentials, SSH agents, or sensitive environment variables.
  7. Add dependency auditing, lockfile review, and automated supply-chain scanning to the documented update process.
  8. Clearly state that the third-party repository is independently maintained and that users must review its current code and dependencies before execution.
Vulnerability Patterns
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The instructions state that if the user does not specify otherwise, the skill defaults to '台灣繁體中文'. This is a natural-language locale constraint applied by default rather than offered as an explicit opt-in choice, which matches the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description states the site is a '台灣繁體中文語料瀏覽器', which imposes a specific language/locale as part of the skill behavior. The file does not mention any user-selectable language option or justify the restriction as a documented locale-specific compliance requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This file presents all guidance and examples only in Traditional Chinese, which can amount to a language/locale constraint. The policy allows such constraints when users are given a choice or when the regional limitation is clearly documented and justified, but neither is stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The guidance says to '優先使用台灣常見用字' and frames these choices as the default direction, which imposes a locale-specific language policy. Although it allows exceptions for explicitly other-region personas, it does not offer a user language/locale choice or opt-in as the default behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The template explicitly mandates '台灣繁體中文' and prohibits other language outputs, including English and Simplified Chinese. Under the policy, forcing a specific language or locale without offering user choice or explaining a region-specific need is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The entire guide is written for a Taiwan workplace context and uses Traditional Chinese throughout, including line L03's reference to '台灣職場辨識度'. Under the policy rule, a locale constraint can be a violation when it is imposed without offering a language or locale choice or clearly documenting a justified region-specific limitation.

Content

No source excerpt is available for this finding.