Back to skill

Security audit

NLP Text Analyzer

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward local NLP text-analysis skill with minor packaging and documentation issues but no evidence of hidden, destructive, or data-exfiltrating behavior.

Install only if you are comfortable with Python NLP dependencies being resolved from current package indexes; for reproducible use, pin or lock jieba, snownlp, and textblob first. Also note that the included basic_usage.py example has a syntax error, so it may need correction before running examples.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The code chunk does relate to NLP functionality, so it is not unrelated or malicious. However, the supplied code is not the implementation of an NLP analyzer itself; it is a test suite validating a broader set of features than the declared description mentions. The declared description lists tokenization, sentiment analysis, keyword extraction, and text classification, while the tests show additional substantive capabilities: language detection, summarization, word-frequency statistics, similarity computation, and stopword add/remove management. Because these are meaningful user-facing capabilities beyond the declared description, and because the actual code chunk’s immediate purpose is testing rather than directly performing analysis, this is a description-behavior mismatch.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The README states that the skill supports only Chinese and English text analysis, and the examples and feature list are framed around that fixed bilingual scope. Under the policy rule for language/locale constraints, this can be read as a language limitation without explicit user opt-in or a documented justification for restricting processing to those languages.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The natural-language description states that the skill supports both Chinese and English, but it does not tell the user how the language is selected or whether the output/input mode is user-controlled. Under the policy rule, language behavior should be explicitly offered as a choice rather than implied by the skill description alone.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This Python example uses Chinese in the top-level description and throughout user-facing print output, indicating a fixed language choice. The file does not provide any opt-in, fallback, or documented justification for restricting output to Chinese, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The dependency uses a lower-bound version specifier instead of pinning to an exact version, which makes installs non-reproducible and can unintentionally pull in newer releases with breaking changes or supply-chain risk. In an NLP skill that relies on third-party text-processing libraries, this increases exposure to compromised or vulnerable upstream packages over time.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
jieba>=0.42.1
snownlp>=0.12.3
textblob>=0.17.1

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The package is not pinned to a specific version, so future installations may resolve to different releases than originally tested. This creates a software supply-chain and reproducibility risk, especially for a text-analysis skill that depends directly on external NLP libraries for core functionality.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
jieba>=0.42.1
snownlp>=0.12.3
textblob>=0.17.1

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

Using 'textblob>=0.17.1' allows any newer version to be installed, which can introduce unreviewed code changes, new vulnerabilities, or incompatible transitive dependencies. While not an immediate exploit by itself, it weakens build integrity and increases long-term supply-chain exposure.

Content

Scanner excerpt · requirements.txt (reported line 3)May include surrounding context.

text
jieba>=0.42.1
snownlp>=0.12.3
textblob>=0.17.1

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The module docstring says the analyzer supports only Chinese and English. Under the policy rule for natural-language locale constraints, this is a language limitation presented as a fixed behavior with no opt-in, fallback, or justification for excluding other languages.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This code file contains extensive natural-language text in Chinese, including the module description and nearly all test docstrings/comments, but provides no indication that Chinese is optional or that the skill is intentionally region- or locale-specific. Under the language/locale policy rule, forcing a specific language without user opt-in can be a policy violation even when it appears in comments or string literals.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.