Back to skill

Security audit

De-AI-fy Text Skill1.0.0

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed local text-processing skill that rewrites user-provided text, with some practical cautions around file overwrites, authorship transparency, and an optional unpinned dependency.

Install only if you are comfortable with a local tool rewriting text you provide. Use separate output directories, avoid pointing output at originals unless you intend to replace them, review results before publishing, disclose AI assistance where required, and pin/review the optional jieba dependency before installing it.

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:51
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `README.md:51` **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ```bash pip install jieba ``` The same unpinned installation guidance is also presented by `quickstart.py:209`. ### Technical Analysis The installation command does not specify a reviewed package version or an integrity hash. Consequently, the package resolved and installed depends on the configured Python package index and the latest release available at installation time. This produces non-reproducible environments and creates a supply-chain exposure if the package source, maintainer account, release process, or configured index is compromised. This finding does not establish that the current `jieba` package is malicious. The risk arises because the instructions implicitly trust a mutable future package release without verifying its exact version or contents. ### Attack Path 1. An attacker compromises the package publisher, distribution account, upstream release process, or package index used by the victim. 2. The attacker publishes or substitutes a malicious package release under the expected package name. 3. A user follows the documented `pip install jieba` instruction. 4. `pip` resolves the attacker-controlled release because no version or hash constraint is present. 5. Malicious installation-time or import-time Python code executes in the user's environment. ### Impact Assessment Malicious dependency code could execute with the privileges of the user or automation account running `pip` or importing the package. Depending on those privileges, the compromise could affect project files, accessible credentials, local data, build outputs, and other resources available to that account. In privileged or CI/CD environments, the scope could extend to deployment credentials and generated artifacts. The dependency is documented as optional, and the app ...[truncated 164 chars]
Remediation
## Remediation Suggestions 1. Pin `jieba` to a specifically reviewed version rather than installing the latest available release. 2. Record dependencies in a lock file or requirements file and require verified SHA-256 hashes, such as through `pip install --require-hashes`. 3. Install packages only from an explicitly approved package index. 4. Review dependency updates before changing the pinned version, including package ownership, release provenance, and published artifacts. 5. Run dependency installation with least privilege inside an isolated virtual environment or container. 6. Update both `README.md` and `quickstart.py` so all installation guidance uses the same pinned and verified dependency specification. 7. Continue documenting the dependency-free fallback so users can avoid installing the optional package when enhanced Chinese segmentation is unnecessary.
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 (10)

Missing User Warnings

Medium
Confidence
84% confidence
Finding
This markdown file documents a command-line tool that supports file processing and batch processing, which can affect user data. The summary provides usage and capabilities but does not include any warning about reviewing outputs, backing up files, or the implications of rewriting user-provided text.

Lp3

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding
The skill documents file and directory input/output behavior but its manifest does not declare any explicit tool scope or permissions boundary. That creates an authorization and transparency gap: an agent or user may invoke a skill that reads from and writes to the filesystem without a clear, least-privilege declaration of what file access is intended.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The usage examples show writing output files and batch-processing directories, but the documentation does not clearly warn that files may be created or overwritten. In practice, this can lead to accidental data loss or unintended modification of large sets of user files, especially during batch operations.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The detector API defaults `language` to `'zh'`, and similar Chinese defaults are repeated throughout the file. This forces a specific language behavior unless the user explicitly overrides it, and the code does not present language choice as an opt-in by default.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The command-line interface sets `--language` default to `'zh'`, which means the tool will process text in Chinese mode even when the user has not opted into that locale. This is a natural-language policy concern because it imposes a specific language setting by default rather than requiring selection.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
This code file contains natural-language strings and documentation that force a specific language for the user experience, including the module description, function docstrings, and console output. The policy allows locale constraints only when they are optional or clearly justified, but this file does not offer opt-in or explain why Chinese-only interaction is required.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The quickstart explicitly markets the tool as making AI-generated text 'more natural' and 'more human-like', and the examples normalize disguising AI-origin text without any disclosure mechanism, consent flow, or policy boundary. In context, this increases the risk of deceptive use in academic, social, review, or moderation-sensitive settings where users may rely on signals of authorship or authenticity.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
This JSON defines language-specific processing paths only for Chinese and English, including AI indicators, conversion rules, and colloquial expressions. Because the file encodes locale-specific behavior in natural-language configuration with no visible indication of user selection, opt-in, or documented locale constraint, it may violate the policy against forcing a specific language or locale without user choice.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
This Python test file contains user-facing/documentation-style text exclusively in Chinese, including the skill description and test labels, with no indication that language choice is optional or region-specific. Under the policy rule, forcing a specific language without user opt-in can be a locale/language policy violation.

Missing User Warnings

Low
Confidence
84% confidence
Finding
This markdown file includes command-line examples that write processed content to output files and directories, but it does not explicitly warn users that running these commands will create or overwrite output data. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors that could affect user data or system integrity.

Static analysis

No suspicious patterns detected.