Back to skill

Security audit

reportgama2

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent market-research report skill, but it should be run deliberately because it performs broad public web and social-platform collection and installs mutable Python dependencies.

Install and run this only in an environment where outbound research traffic is acceptable. Confirm country, category, modules, output location, and language before a full run, and consider pinning dependencies or using a virtual environment. Treat social-platform results as public-source intelligence that may still contain personal or regulated content.

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

Unpinned Third-Party Dependencies Permit Unreviewed Package Updates

Content
View full analysis

Vulnerability Details

File Locations: SKILL.md:15-18, requirements.txt:5-13
Vulnerability Type: Supply-chain risk caused by unpinned dependencies
Risk Level: Medium

Evidence

SKILL.md:15-18:

yaml
install:
  - id: python-deps
    kind: exec
    command: "pip3 install requests beautifulsoup4 lxml fake-useragent python-dateutil matplotlib reportlab pillow"

requirements.txt:5-13 specifies dependencies using lower-bound constraints rather than exact reviewed versions:

text
requests>=2.28.0
beautifulsoup4>=4.11.0
lxml>=4.9.0
fake-useragent>=1.1.0
matplotlib>=3.5.0
reportlab>=4.0.0
pillow>=9.0.0

Technical Analysis

Both supported installation paths resolve mutable package versions from the configured Python package index. The direct installation command has no version constraints, while requirements.txt only establishes minimum versions. Neither path uses cryptographic hashes or a lock file.

Consequently, installations performed at different times can retrieve different code that was not present during this audit. If a package account, distribution artifact, package-index route, or future release is compromised, the malicious release may execute code during package installation or when imported by the Skill. The project uses these packages extensively, so a compromised dependency would be loaded during normal operation.

No evidence was found that the currently named dependencies are malicious. The vulnerability is the absence of controls ensuring that only reviewed artifacts are installed.

Attack Path

  1. An attacker compromises a dependency publisher, distribution artifact, package-index account, or configured package source.
  2. The attacker publishes a newer release satisfying the unconstrained or lower-bound dependency specification.
  3. A user or automated environment installs the Skill using the declared pip3 install command o ...[truncated 897 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace unconstrained and lower-bound requirements with exact versions that have been reviewed and tested.
  2. Generate a lock file containing all direct and transitive dependencies.
  3. Require cryptographic hashes for downloaded distributions, such as through pip install --require-hashes.
  4. Make the installation command consume the reviewed lock file rather than listing mutable package names directly.
  5. Install dependencies inside a dedicated virtual environment or restricted container rather than into a global interpreter.
  6. Restrict package resolution to an approved package index or internal artifact mirror.
  7. Prefer pre-reviewed wheels and prohibit unexpected source builds where practical.
  8. Add automated dependency vulnerability, provenance, and integrity checks to the release process.
  9. Review and deliberately update locked versions on a controlled schedule rather than accepting future releases automatically.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (82)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

A skill framed as broad market-research automation but actually limited to Russia-specific tender scraping changes both legal and security posture. Users may unknowingly authorize a specialized scraping workflow with different compliance, monitoring, and abuse risks than the marketed functionality.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The safety/privacy section claims limited public-data collection and no privacy impact, but the documented sources include broad monitoring of social platforms and other external sites. Contradictory safety statements can mislead users and reviewers into underestimating data-collection breadth, legal exposure, and the possibility of collecting personal or quasi-personal content from public communities.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill declares executable installation steps and implies broad capabilities such as network access, file output, and script execution, but does not declare an explicit permission or allowed-tools scope. That makes the runtime trust boundary unclear and can lead an agent platform to grant broader access than users expect for a market-research skill.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest and documentation are internally inconsistent about the number of modules and report sections. Such inconsistencies are a real security concern because they weaken auditability and make it harder to determine what the skill should be permitted to do or whether it is behaving unexpectedly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description does not clearly warn users that the skill may perform extensive external collection across many websites and social platforms. Lack of upfront disclosure undermines informed consent and increases the chance that users trigger data collection they did not expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are extremely broad, including generic invocations that could match ordinary user requests. Overbroad activation can cause unintended execution of network-heavy scraping and report-generation workflows without the user realizing a specialized skill has been invoked.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Automatically setting the report language without explicit user opt-in is primarily a consent and expectation issue rather than a direct exploit path. In this context it matters because language choice may alter what sites are queried and what data is collected, but the security impact is relatively limited.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Several trigger phrases are ambiguous about scope, such as generic requests for market reports, competitor analysis, customs data, or e-commerce pricing. Ambiguous triggers can cause the skill to activate when the user intended a narrower lookup or a different tool, creating consent and overreach risks in a skill that aggregates multi-source intelligence.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger phrase "市场调研" is extremely broad and can match many ordinary user requests unrelated to this specific skill. That increases the chance of unintended auto-activation, causing the agent to invoke a powerful report-generation workflow, potentially collecting external data or producing outputs the user did not explicitly request.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Hard-coding the manifest language to zh-CN without indicating user choice can lead to mismatched language behavior, misunderstanding of prompts, and accidental activation for users operating in other locales. In a multilingual research skill, forced locale selection is more concerning because it may bias interpretation and output handling across languages and markets.

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.

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
93% confidence
Finding

The constructor defaults to country="俄罗斯" and lang="ru", and the session later forces an Accept-Language header based on that setting. This imposes a specific locale by default rather than presenting a language or region choice, which matches the policy concern for forced language/locale behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The code performs outbound HTTP requests to external sites using user-influenced search terms without any explicit user-facing disclosure or consent flow. In a research skill, those requests can leak sensitive business intent, product focus, or proprietary keywords to third parties, making this a real privacy and data-governance issue even if it is not an exploit in the classic RCE sense.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module docstring is entirely in Chinese and presents the skill behavior and purpose in a single fixed language. Under the policy, forcing a specific language without user opt-in or a clear region-specific justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Dynamic import via __import__()

Medium
Category
Dangerous Code Execution
Confidence
75% confidence
Finding

Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.

Content

Scanner excerpt · scripts/check_deps.py (reported line 31)May include surrounding context.

python
missing = []
    for module, desc in REQUIRED:
        try:
            __import__(module)
            print(f"  [OK]  {desc} ({module})")
        except ImportError:
            print(f"  [MISSING] {desc} ({module}) — 必需")

Static analysis

No suspicious patterns detected.