Back to skill

Security audit

토큰세이버 (한국어)

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent token-saving memory client, but it can send saved content and search queries to a remote service with broad activation phrases and limited privacy/install disclosure.

Review before installing. Treat saved content and search terms as data sent to a third-party service, avoid secrets or regulated data unless you have assessed that service, prefer a pinned and verified package version, and invoke save/search only when you explicitly intend to update or query the remote memory store.

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

Unpinned Third-Party Package Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 24–27
Vulnerability Type: Unpinned third-party dependency
Risk Level: Medium

Vulnerable Code

bash
pip install token-saver

Technical Analysis

The installation instructions direct users to install token-saver from the default Python package index without specifying an exact version or verifying the package with a cryptographic hash. Consequently, installation behavior depends on whichever release the package registry resolves at execution time.

The instructions also do not establish that the registry artifact is built from, or equivalent to, the reviewed local implementation in scripts/token_saver.py. A later malicious release, compromised publisher account, or compromised package-distribution channel could therefore cause users to execute code that was not included in this audit.

Attack Path

  1. An attacker compromises the package publisher account, distribution channel, or an otherwise trusted future release of token-saver.
  2. The attacker publishes a modified package under the same package name.
  3. A user follows the documented pip install token-saver instruction.
  4. pip resolves and installs the attacker-controlled release because no version or hash is required.
  5. Package installation or later import and execution runs the malicious code with the user's privileges.

This path requires compromise or malicious control of the named dependency or its distribution chain; the audited repository itself does not contain the hypothetical payload.

Impact Assessment

Successful exploitation could execute arbitrary code with the privileges of the account or environment running pip or importing the package. Depending on those privileges, the malicious dependency could access application data, environment variables and API keys, alter user-writable files, make network requests, or compromise the associated Python environment. System-wide installation with elevat ...[truncated 49 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin the dependency to a specifically reviewed version, for example token-saver==1.0.0.
  • Publish and verify cryptographic hashes, using a command such as pip install --require-hashes -r requirements.txt.
  • Maintain a lock file or hash-locked requirements file under version control.
  • Explicitly identify the authoritative package registry and source repository.
  • Verify that the published package is reproducibly built from and functionally matches the audited source.
  • Prefer installation in an isolated virtual environment under a non-privileged account.
  • Add dependency monitoring and require a new security review before updating the pinned release.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (9)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases listed in the description are broad, natural-language terms such as '프롬프트 최적화' and '메모리 검색' that could appear in ordinary user requests and cause unintended invocation. In an agent setting, accidental activation can route user data or workflow context into this skill unexpectedly, especially because the skill also appears to interact with an external API-backed service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs users to create an API key and shows save/search operations, but it does not clearly disclose that saved content may be transmitted to and stored by an external service. Users may input sensitive project notes, roadmap data, or memory/context content under the assumption that it remains local, creating confidentiality and compliance risks if proprietary or personal data is sent off-platform.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This manifest-like JSON uses Korean-only natural-language descriptions for all endpoints, with no indication that the skill is intended only for Korean-speaking users or that language selection is configurable. Under the policy, a fixed language/locale without user opt-in or documented regional justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The description includes "한국어 Context DB," which indicates a Korean-language context database, but the manifest does not state that this locale restriction is optional, user-selectable, or justified by a region-specific purpose. This can violate language/locale policy when users are not offered a choice.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger list includes broad phrases such as '컨텍스트 저장', '메모리 검색', and '프롬프트 최적화' that could match many ordinary user requests and cause the skill to activate unexpectedly. In an agent environment, overbroad activation can reroute user interactions through this skill, increasing the chance of unintended data handling, prompt interference, or policy bypass through capability shadowing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The module description explicitly labels itself as a '한국어 Context DB API 클라이언트', indicating a Korean-language constraint. There is no accompanying opt-in, language choice, or documented regional justification, so this appears to impose a locale preference in natural-language instructions/description.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The save() method transmits arbitrary user-provided content to a third-party service at api.tokensaver.ai, but the surrounding documentation only describes functionality and token savings, not the off-system data transfer or privacy implications. This can cause users or downstream agents to send secrets, internal notes, or regulated data externally without informed consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The search() method sends user search queries to an external API without clearly disclosing that those queries leave the local system. Search terms often contain project names, customer identifiers, incident details, or other sensitive context, so silent transmission creates a meaningful privacy and confidentiality risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The description states the skill uses a Korean Context DB, and later markets it as "한국어 특화," but does not indicate that language behavior is optional or limited to a Korea-specific deployment. This can conflict with language/locale policy expectations when a skill is presented for general use without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.