Back to skill

Security audit

俄罗斯血糖检测设备市场调研(即时版)

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a market-report skill, but it should be reviewed carefully because it asks for local API credentials and script execution while the packaged implementation is incomplete and includes unsafe credential/dependency practices.

Install only after reviewing the code and replacing the credential flow with environment variables or an untracked local config. Run it in a virtual environment or container, avoid privileged pip installs, and do not rely on the advertised real-time search behavior until the missing implementation is fixed.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Create a Mutable Supply-Chain Boundary

Content
View full analysis
=2.28.0 beautifulsoup4>=4.11.0 lxml>=4.9.0 python-docx>=0.8.11 ``` The installation metadata in `SKILL.md:19-23` also directs users to install the latest available packages without version or integrity constraints: ```yaml install: - id: python-deps kind: exec command: "pip3 install requests beautifulsoup4 lxml python-docx" label: "安装Python依赖" ``` ### Technical Analysis The requirements use lower-bound constraints rather than exact, reviewed versions. The installation command is even less restrictive and contains no version constraints. Neither mechanism verifies package hashes. Consequently, the effective code installed with the Skill can change after the Skill package has been audited. Future package releases, transitive dependency changes, source distributions, or a compromised package index could introduce incompatible or malicious installation behavior. Python packages and their build backends may execute code during installation. Although the listed package names are established projects and no malicious dependency was identified in the repository, the current configuration does not provide reproducible or integrity-verified dependency resolution. ### Attack Path 1. An attacker compromises a permitted future version of a listed dependency, one of its transitive dependencies, or the configured package index. 2. A user follows the installation instruction or installs from `requirements.txt`. 3. Pip resolves the compromised version because the project permits any version at or above the stated minimum. 4. Malicious build or package code executes under the account performing the installation. 5. The malicious dependency can subsequently execute whenever the Skill imports or uses the affected package. ### Impact Assessment T ...[truncated 612 chars]
Remediation
View remediation
beautifulsoup4== lxml== python-docx== ``` 2. Generate a lock file that includes all transitive dependencies. 3. Require package hashes by using a hash-locked requirements file and `pip install --require-hashes`. 4. Make the installation metadata invoke the same locked dependency file instead of installing unconstrained package names. 5. Use `python3 -m pip` to ensure dependencies are installed into the intended interpreter. 6. Install inside a dedicated virtual environment or container and never run pip with administrative privileges. 7. Configure an approved package index and disable unexpected fallback indexes. 8. Regularly scan locked dependencies for known vulnerabilities and review updates before changing pins. ]]>

T09 · Insecure Skill Coding Practices

Note
Location
scripts/data_parser.py:51
Finding

Caller-Controlled Input File Is Rewritten In Place with Symbolic-Link Following

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (38)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The declared description promises a richer end-to-end capability: integrated Python-based report generation plus live SerpAPI retrieval, ast.literal_eval parsing, standardized 10-chapter Xuanself structure, and output as a deliverable Word report. The supplied code chunk only writes static report text for an opening section/body in Markdown-like format via repeated A(...) calls, with a few interpolated values from existing variables. That is related to the same general domain (Russia blood glucose market research), so the topic aligns, but the implemented behavior is materially narrower than the declared purpose. Key advertised capabilities—live search, parsing, Word output, and full standardized structure—are absent from this chunk, making the description inaccurate for the supplied code.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

There is a clear description-behavior mismatch. The declared purpose describes a comprehensive market-research/report-generation skill for the Russian blood glucose device market, including live search and structured analysis generation. However, the provided code chunk only implements a Markdown-to-Word exporter. Its capabilities are limited to local document formatting and file output. While Word export is consistent with one small part of the description ('输出 Word 报告'), the main declared functionality—data gathering, intelligent parsing, research synthesis, and full report generation—is absent from this code. Therefore the code chunk does not accurately represent the declared overall purpose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest sets a fixed language value of zh-CN, which can indicate a language policy constraint. There is no nearby indication that users may opt into another language or that the locale restriction is required for a documented regional purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest explicitly declares external API usage and states that a SerpAPI key is configured in a local data file, but provides no user-facing disclosure about outbound network transmission, third-party data handling, or safe credential storage. In a skill that performs real-time research, this can cause sensitive prompts, business queries, or embedded credentials to be transmitted externally without informed user consent, and it normalizes placing secrets in package files.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README instructs users to store a live SerpAPI credential in a local JSON file but provides no guidance about secrets handling, file permissions, or preventing accidental commits. This can lead to credential leakage through source control, shared skill directories, backups, or screenshots/logs, resulting in unauthorized API use and potential billing or data-exposure consequences.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
83% confidence
Finding

The skill advertises and documents file read/write and script-execution workflows, but the manifest section shown does not declare any explicit tool scope such as allowed tools or permissions. That creates an authorization and transparency gap: an agent or user may not understand that local files will be created and commands run, increasing the chance of unsafe execution or broader-than-expected file access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documentation instructs users to place a required API key in a local data file but provides no privacy, storage, or exposure warning. In an agent ecosystem, that omission increases the chance of credential leakage through file reads, support bundles, debugging output, or accidental publication.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documentation explicitly instructs users or agents to write Python scripts to disk and execute them via shell commands. That broadens the skill from report generation into arbitrary code execution, which is dangerous because any prompt injection, altered script content, or unsafe parameter handling could lead to local command execution and filesystem changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill tells the operator to create files, run Python, and generate output documents but does not prominently warn that local files will be modified and commands executed. This weakens informed consent and makes socially engineered or unexpected filesystem/command activity more likely in an agent setting.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This JSON dataset mixes Russian and Chinese natural-language fields across multiple records, such as market notes and pricing/insurance labels, without any indication that the skill offers locale selection or that the multilingual constraint is intentional. That can violate language/locale policy if downstream skill behavior assumes or imposes these languages on users without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file emits all user-facing report text in Chinese, including headings and analysis content, with no indication that the user opted into that language or that the skill is explicitly limited to Chinese-language output. This can violate language/locale policy because it forces a specific language without user choice.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The natural-language strings throughout the file are written in Chinese, indicating the generated report section is fixed to Chinese output. This creates a language policy concern because the skill does not offer any user opt-in or locale selection, and the file gives no justification for enforcing that language.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This file emits report sections and narrative text entirely in Chinese, including headings and explanatory content, with no indication that the user opted into Chinese output. The policy explicitly flags language or locale constraints when a skill forces a specific language without user opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The generated report content is written entirely in Chinese section headings and descriptions, with no indication that the user can choose language or that Chinese output is required for a documented regional purpose. This can violate language/locale policy when a skill imposes a specific language without opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The clean_bom function detects a BOM and then opens the same path in write-binary mode to overwrite the file contents. Although the docstring describes the behavior for developers, there is no user-facing disclosure such as a prompt, print/log message, or confirmation before modifying the file in place.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The code loads a raw dataset from disk and extracts ecommerce, VKontakte, and Telegram-derived content for inclusion in the report. There is no visible warning, comment, docstring, or print/log message informing the user that external/social data will be processed and written into the generated output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Nearly all generated natural-language content is fixed in Chinese, including headings, summaries, and recommendations. This imposes a specific language on users without offering opt-in, fallback, or explanation that the skill is intended only for a Chinese-language workflow.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest sets the skill language to "zh-CN", which indicates a fixed language/locale preference. Under the policy, forcing a specific language is a violation unless the skill offers a user choice or clearly documents and justifies the locale restriction; this file does neither.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The description explicitly mentions scripted report generation and Word export, which are file-writing operations that can affect the user's filesystem. There is no accompanying warning in this manifest about output file creation, save location, or overwrite behavior.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill requires storing a SerpAPI key in a local data file, introducing credential handling without protective guidance. Local plaintext credential storage can lead to accidental disclosure through logs, repository sync, backups, or overly broad file access by other tools.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The note on L04 is written only in Chinese and references a Chinese registration instruction, while the data sources listed elsewhere are largely Russian-specific. This creates a locale/language constraint in user-facing configuration text without an explicit opt-in or justification, which matches the natural-language policy check for forced language/locale behavior.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The dependency specifier for requests is only lower-bounded (>=2.28.0), so builds may resolve to different versions over time, including versions with known security advisories or unexpected breaking behavior. In a skill that performs real-time web access and external data retrieval, leaving a network-facing library unpinned increases supply-chain and reproducibility risk.

Content

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

text
requests>=2.28.0
beautifulsoup4>=4.11.0
lxml>=4.9.0
python-docx>=0.8.11

Static analysis

No suspicious patterns detected.