Back to skill

Security audit

car-search

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent used-car search tool, but it needs review because it uses scraping-style browser impersonation and anti-bot challenge handling against third-party sites.

Install only if you are comfortable with a CLI that scrapes Chinese used-car sites and may interact with anti-bot systems. Run it in an isolated environment, avoid debug/trace logging unless needed, review site terms before use, and prefer a committed lockfile or pinned dependencies before allowing uv sync.

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
scripts/pyproject.toml:7
Finding

Unpinned Third-Party Dependencies Without a Committed Lockfile

Content
View full analysis
=8.1", "httpx>=0.27", "rich>=13.0", "pyyaml>=6.0", "brotli>=1.2.0", ] ``` The repository contains no dependency lockfile, while `SKILL.md` instructs users to execute `uv sync` when dependencies are missing. ### Technical Analysis All runtime dependencies use open-ended lower-bound constraints. Consequently, dependency resolution can install future package versions that were not present or reviewed when the Skill was audited. This does not establish that any current dependency is malicious. However, it creates a supply-chain trust gap: if a permitted package release or package-index account is compromised, a later invocation of `uv sync` may resolve the compromised release automatically. Python package installation or subsequent imports may execute package-controlled build or runtime code with the permissions of the invoking process. The issue is classified as insecure dependency management rather than remote payload execution because the project does not explicitly download and execute a remote script. The flagged documentation in `dev_docs/STEPS.md` also does not contain `curl | bash`; its curl examples either retrieve API data or pipe response data to a local Python parser. ### Attack Path 1. An attacker compromises the publishing account, distribution artifacts, or release process of one of the allowed dependencies. 2. The attacker publishes a malicious version that still satisfies the corresponding open-ended constraint. 3. A user or Agent follows the project instructions and runs `uv sync`. 4. Because no reviewed lockfile constrains resolution, the package manager selects the malicious release. 5. Package-controlled code executes during installation, import, or normal CLI oper ...[truncated 1019 chars]
Remediation
View remediation
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (49)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the underlying implementation reads environment variables and configures logging unrelated to the declared skill purpose, that is security-relevant because undeclared env access and logging can capture secrets, tokens, or sensitive operational context. In a user-facing skill, unrelated hidden capabilities increase the chance of unauthorized data exposure and make review less reliable.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly instructs broad triggering even when the user did not mention used cars, causing over-activation outside clear user intent. Over-broad routing can unnecessarily send general car-shopping conversations into a networked scraping/export workflow, increasing data exposure, surprising tool use, and the chance of irrelevant or unauthorized actions.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · dev_docs/STEPS.md (reported line 69)May include surrounding context.

第三步:寻找完整品牌数据源

尝试 1:curl 直接请求页面 HTML

bash
curl -s 'https://www.dongchedi.com/usedcar/...' \

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill instructs the agent to use networked CLI tooling, may perform local file export/write operations, and mentions environment/setup behaviors, yet it declares no explicit tool scope or permissions boundary. This creates an over-privileged integration surface where the runtime may allow broader capabilities than users or reviewers expect, increasing the risk of unintended network access or file writes.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The instructions require city and brand parameters to be provided in Chinese and the overall skill content is written as if Chinese is mandatory, but there is no user opt-in or explicit statement that the skill is limited to a China-specific workflow. This can violate language/locale policy because it imposes a specific language requirement without offering a choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The instructions explicitly require city and brand names to use Chinese forms, which imposes a language/locale constraint in natural-language guidance. The file does not offer user opt-in or explain that this restriction is required for a region-specific or compliance-bound context.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document explicitly recommends using Playwright with a real Chromium browser to obtain data when normal scripted requests appear blocked, and frames this as a way to get around anti-scraping behavior. In a car-search advisory skill, guidance to bypass a third-party site's access controls is not necessary to fulfill the stated user purpose and can enable policy, ToS, or access-control circumvention.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The Markdown normalizes use of Playwright to access data that was unavailable to curl/httpx, but provides no caution about authorization, scraping restrictions, rate limiting, or contractual/legal constraints. That omission increases the chance that future developers will operationalize scraping behavior that is non-compliant or disruptive.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The prompts and expected outputs are written entirely in Chinese and imply the skill should operate in that language by default. Because this file does not state that the skill is region-specific or that users can opt into another language, it presents a natural-language locale policy concern under the language-choice rule.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This section explicitly documents captcha-reduction tactics and automated retry behavior for a third-party vehicle platform, which facilitates bypassing anti-abuse controls. Even though it is presented as technical reference material, it normalizes and operationalizes evasion of platform defenses without any compliance guardrails, making misuse easier.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The shared HttpClient section describes anti-detection headers, jitter designed to evade burst detection, and adaptive retry logic tuned to platform throttling responses. This is dangerous because it provides a reusable blueprint for stealthy scraping across multiple sites, increasing the scale and persistence of unauthorized collection against third-party services.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The raised RuntimeError messages are written only in Chinese, which imposes a specific language on users regardless of their preferred locale. The policy requires avoiding forced language or locale choices unless the skill offers opt-in or clearly documents a justified regional constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This exception message is presented only in Chinese and does not offer any locale choice or fallback. That creates a natural-language policy violation by forcing a specific language for user-visible output.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest describes a used-car advisory and aggregation skill, where network fetching and parsing are expected. However, automatically opening a local browser and prompting the user to solve anti-bot challenges is a separate capability affecting the user's environment, and it goes beyond straightforward search/aggregation behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file explicitly implements browser impersonation and anti-detection behavior via a forged desktop User-Agent and browser fingerprint headers, plus jitter and burst-throttling designed to avoid request-pattern detection. In a car-search aggregation skill, this goes beyond ordinary HTTP resiliency and materially enables scraping in a way that can bypass platform bot controls or terms-based restrictions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The client hard-codes Accept-Language to zh-CN/zh regardless of user choice, which can silently alter content, pricing, inventory, or legal disclosures returned by upstream services. While not directly an exploit primitive, it creates privacy and integrity concerns by forcing a locale signal without user opt-in and may bias results in an aggregator context.

Content

No source excerpt is available for this finding.