Back to skill

Security audit

DataCrawl Debug

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly fits a web-data debugging purpose, but it also ships under-disclosed contact profiling, unsafe generated-code behavior, and scraping evasion guidance that users should review carefully.

Install only if you are comfortable with a scraping/debugging tool that can generate runnable networked code and includes an under-disclosed contact-ranking script. Review generated code before running it, do not use the evasion recommendations against sites that restrict automation, and avoid processing identifiable contact records unless you have a clear lawful and consent basis.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/code-generator.py:197
Finding

Arbitrary Python Code Injection in Generated Scripts

Content
View full analysis
str: lines = [] for f in fields: safe_name = f.replace(" ", "_").replace("-", "_").lower() if mode == "requests_bs4": lines.append(f' data["{safe_name}"] = el.get_text(strip=True) if hasattr(el, "get_text") else ""') lines.append(f' # TODO: soup.select_one(".{safe_name}") or el.select_one(".{safe_name}")') elif mode == "playwright": lines.append(f' sub_el = item.query_selector(".{safe_name}")') lines.append(f' data["{safe_name}"] = sub_el.inner_text().strip() if sub_el else ""') elif mode == "api_client": lines.append(f' ...[truncated 2925 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/process-engine.py:99
Finding

Regular Expression Denial of Service Through Unescaped Field Names

Content
View full analysis
]*class="[^"]*{field}[^"]*"[^>]*>(.*?)
Remediation
View remediation

other

Warning
Location
scripts/trade-contact-scorer.py:76
Finding

Undeclared Contact Ranking and Persona Profiling Capability

Content
View full analysis
str: text = f"{bio} {nickname}" scores = {} for persona, keywords in self.PERSONA_MAP.items(): scores[persona] = sum(1 for k in keywords if k in text) best = max(scores, key=scores.get) return best if scores[best] > 0 else "unrecognized" def score_contact(self, contact: dict) -> dict: uid = contact.get("id", "") if uid in self.seen_ids: return None self.seen_ids.add(uid) scores = { "engagement_rate": self.score_engagement( contact.get("likes", 0), contact.get("comments", 0), contact.get("followers", 0) ), "save_ratio": self.score_save_ratio( ...[truncated 3022 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (26)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The declared description presents a broad data-processing/debugging skill focused on web data extraction, cleaning, selector/403/timeout troubleshooting, and code generation from URLs and fields. The supplied code instead implements a narrow business-specific analytics tool: it accepts JSON contact/account records, computes weighted scores across engagement, save ratio, comment activity, follower scale, and trade relevance, infers a persona, assigns a quality tier, deduplicates by ID, and returns rankings/statistics. While there is a minor overlap with deduplication/processing of structured data, the primary purpose is materially different from the declared purpose. No undeclared sensitive resource access is present, but the skill description does not accurately represent the actual behavior.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 82)May include surrounding context.

md
scripts/data-cleaner.py clean --input 数据 --remove-html --remove-duplicates

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 83)May include surrounding context.

md
scripts/data-cleaner.py clean --input 数据 --remove-html --remove-duplicates

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 84)May include surrounding context.

md
scripts/data-cleaner.py clean --input 数据 --remove-html --remove-duplicates

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 127)May include surrounding context.

md
scripts/data-cleaner.py clean --input 数据 --remove-html --remove-duplicates

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file implements a trade-contact scoring and persona classification tool, which materially differs from the declared skill purpose of web-data processing, extraction debugging, and data cleaning. This hidden capability enables profiling and ranking of individuals/leads under the cover of a benign data-processing skill, increasing the risk of deceptive deployment, privacy misuse, and unauthorized downstream targeting.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill advertises operational capabilities around generating code, reading inputs, cleaning data, and interacting with web targets, but it does not declare an explicit tool scope such as permissions or allowed-tools. In an agent framework, missing scope boundaries can let the runtime grant broader file or network access than users or reviewers expect, increasing the risk of unauthorized data access or outbound requests.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The invocation text is extremely broad, covering generic 'data processing', 'debug data', cleaning, extraction, optimization, and multiple Chinese trigger phrases. Overbroad routing can cause this skill to activate for requests outside its safe or intended boundaries, potentially leading the agent to produce scraping code, perform networked actions, or handle sensitive datasets without clear user intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

Multiple natural-language descriptions in the manifest and document present the skill in Chinese, and the listed trigger phrases explicitly include Chinese terms without any indication that output language follows user preference. There is no documented opt-in or language-selection behavior, which can conflict with a policy requiring language or locale choice.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill advertises very broad activation conditions spanning generic activities like data processing, debugging, cleaning, and optimization, which increases the chance it will be invoked for requests outside its intended scope. Over-broad routing can cause the wrong skill to receive sensitive user tasks or untrusted web/data inputs, expanding attack surface and enabling prompt/instruction collisions in downstream layers.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger list includes broad everyday terms such as 'data processing', 'data extraction', and 'debug data', along with common Chinese equivalents, making accidental invocation likely during ordinary user conversations. In a skill that handles web data, code generation, and debugging, misrouting is more dangerous because it may pull in powerful instructions or resources when the user did not intend to use this capability.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire skill file is written in Chinese and does not offer any language or locale choice, nor does it document that the skill is intended only for a Chinese-speaking or region-specific context. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This Python skill generates scraper/API-client code that will send requests to user-supplied URLs and save collected data to disk, but the generator's own descriptions and emitted usage guidance do not warn the user about those network and file-write behaviors. Under SQP-2 for code files, these safety-relevant operations lack clear disclosure here beyond implementation details.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This Python file contains natural-language descriptions, help text, and error messages in Chinese throughout, including the module docstring, CLI descriptions, and returned error strings. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code file contains a natural-language description in Chinese, which imposes a specific language on users without any opt-in or explanation. The same pattern continues in CLI help text, making the tool effectively language-restricted in a way that is not justified in the file.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The troubleshooting guidance normalizes anti-detection tactics by instructing users to slow requests with jitter, randomize identity signals, rotate IPs, and mimic human interaction. This meaningfully lowers the barrier to evading platform protections and is risky in a skill explicitly meant to support web data collection and debugging.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The rate-limit section includes explicit anti-bot evasion guidance such as rotating proxies, spoofing User-Agent values, waiting out CAPTCHA events, and simulating human behavior. In a debugging utility, this goes beyond diagnosing failures and materially assists bypassing website defenses, which can enable abusive scraping or unauthorized access patterns.

Content

No source excerpt is available for this finding.

Ssd 4

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The generic code hints recommend delays and adding a User-Agent header by default. While these can be legitimate engineering practices, in the context of a scraping/debug skill they can subtly steer users toward anti-detection behavior, especially when paired with the stronger evasion advice elsewhere in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The argparse description and help messages are user-facing natural language, but they are only provided in Chinese. Under the policy, forcing a specific language without user choice or a documented locale-specific purpose is a violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This Python file contains natural-language descriptions, help text, and docstrings exclusively in Chinese, including the main CLI description and argument help strings. Under the stated policy, forcing a specific language without user choice is a natural-language policy violation unless clearly justified, and no such justification or opt-in appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This file contains natural-language strings such as the module docstring, CLI help text, error messages, and compliance notes exclusively in Chinese. Under the policy rule, forcing a specific language without user opt-in is a locale/language policy violation, and the file does not offer an alternative language or explain a region-specific requirement.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The code goes beyond generic data processing by inferring personas such as 工厂主, 跨境卖家, and 新手 and assigning quality tiers to contacts. Even without obvious code execution risk, this constitutes profiling functionality that may be inappropriate for the declared context and can be used to discriminate, target, or prioritize individuals without transparency or consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The entire checklist is written in Chinese and provides no indication that language choice is optional or that the skill is intended only for a Chinese-speaking or region-specific context. Under the policy, forcing a specific language without user opt-in or clear justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill guidance is written in Chinese, with no indication that the user can choose another language or that the skill is intentionally restricted to a Chinese-speaking context. This can violate language/locale policy when a skill imposes a specific language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

Natural-language strings throughout the file, including the top-level description and argument help text, are presented exclusively in Chinese. This can be a locale/language policy issue because the skill fixes one language without documenting that choice or offering an alternative.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.