Back to skill

Security audit

基金新闻日报

Security checks for vulnerabilities and agentic risk

Overview

This skill is a Chinese fund-news report helper with disclosed web search, filtering, and Word document generation, with supply-chain and coverage caveats users should understand.

Install only if you are comfortable with Chinese-language financial-news workflows, outbound searches through the listed search/news providers, and local Word report creation. Prefer installing dependencies in an isolated environment and pinning reviewed versions instead of using the unpinned global npm and pip commands as written.

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
references/technical_specs.md:122
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: references/technical_specs.md, lines 122–129
Vulnerability Type: Unpinned third-party dependencies and global package installation
Risk Level: Medium

Vulnerable Code

bash
npm install -g mcporter
bash
pip install python-docx

Technical Analysis

The documented installation commands retrieve third-party packages without exact version constraints, lockfiles, or integrity verification. Consequently, the artifacts installed depend on whichever package versions the registries serve at installation time rather than versions reviewed with this project.

The mcporter package is also installed globally through npm's -g option. This expands the package's reach beyond an isolated project environment and may expose its executable entry points to unrelated workflows. Depending on the user's npm configuration, installation scripts and package code execute with that user's permissions.

The Python dependency is likewise unpinned. No hash-locked requirements file or other mechanism in the reviewed project establishes the expected package artifact or verifies its integrity.

This finding represents supply-chain exposure rather than evidence that either named package is currently malicious.

Attack Path

  1. An attacker compromises a named package, one of its transitive dependencies, or a future package release available through the configured registry.
  2. A user follows the documented installation instructions.
  3. The package manager resolves and downloads the attacker-controlled version because no exact reviewed version or integrity hash is specified.
  4. Package installation hooks, executable entry points, or subsequently imported package code run under the installing user's account.
  5. In the global npm case, the compromised package can remain available on the user's command path and may affect workflows outside this project.

Impact Assessment

Successful exploitation could execute arbit ...[truncated 567 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to an exact, reviewed version.

  2. Add and commit package-manager lockfiles containing resolved transitive versions and integrity metadata.

  3. Replace global npm installation with a project-local dependency and invoke it through a project-scoped runner.

  4. Use npm ci against a committed lockfile rather than resolving the latest available release during installation.

  5. Install Python dependencies in a dedicated virtual environment.

  6. Maintain a hash-locked Python requirements file and install with hash verification, for example:

    bash
    python -m venv .venv
    . .venv/bin/activate
    python -m pip install --require-hashes -r requirements.txt
    
  7. Document the expected official registries and package provenance, and reject unapproved registry overrides.

  8. Review package installation scripts and transitive dependencies before updating pinned versions.

  9. Integrate dependency vulnerability and provenance scanning into the release process.

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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The skill metadata and documentation promise end-to-end web collection from five sources plus date-range retrieval, but the finding indicates the actual implementation only processes provided data and applies stronger filtering than disclosed. This can mislead users about what data was fetched, omitted, or covered, causing incorrect trust in the completeness and provenance of generated reports.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Automatically creating a Word document for date-range queries without clear advance notice is a side effect that writes files to the user's environment. Even if benign, undocumented file creation can surprise users, overwrite expected artifacts, or create privacy and operational issues in automated workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The entire skill guidance is written only in Chinese and does not indicate that language selection is optional or limited to a justified Chinese-only deployment context. Under the stated policy, forcing a specific language without user opt-in is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file presents all instructions, operational details, and dependency guidance only in Chinese. Under the policy rule for language or locale constraints, forcing a single language without user opt-in or a documented regional justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill advertises automatic web fetching from external financial news platforms but does not clearly warn that it will make network requests. Undisclosed network use can expose user prompts, trigger policy violations in restricted environments, or surprise users who expect offline-only behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The manifest description and examples are entirely Chinese-language and present the skill as producing a Chinese fund-news daily report, but there is no explicit user opt-in or documented justification for a Chinese-only language constraint. The policy requires flagging forced language or locale behavior when no choice or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

SQP-3 applies to all file types and covers language or locale policy violations in natural-language content. The module docstring states the script purpose entirely in Chinese, and the file consistently uses Chinese-only user-facing text without any opt-in, fallback, or explanation that the tool is intentionally region-specific.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.