Back to skill

Security audit

Used car recommender

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed UK used-car advisor that searches public car listings and gives buying guidance, with some privacy and dependency cautions but no evidence of malicious behavior.

Install only in an isolated Python environment, review or pin dependencies before running pip install, and be aware that live searches may send your budget, vehicle preferences, city, or postcode to marketplace websites. Treat image-based condition checks and sales-speed estimates as advisory only, and verify important details with MOT/HPI checks and an in-person inspection.

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
README.md:92
Finding

Unpinned Third-Party Dependencies Permit Supply-Chain Code Execution

Content
View full analysis

Vulnerability Details

File Location: README.md:92-96
Additional Locations: requirements.txt:1-3, docs/AUTOTRADER_INTEGRATION.md:30-32, docs/AUTOTRADER_INTEGRATION.md:340-343, docs/AUTOTRADER_INTEGRATION.md:362-371, docs/AUTOTRADER_INTEGRATION.md:427-428
Vulnerability Type: Unpinned and unverifiable third-party package installation
Risk Level: Medium

Vulnerable Code

README.md:92-96:

bash
# Install basic dependencies first
pip install -r ~/.cursor/skills/uk-car-recommender/requirements.txt

# Add AutoTrader support
pip install autotrader_scraper

requirements.txt:1-3:

text
requests>=2.31.0
beautifulsoup4>=4.12.0
lxml>=5.0.0

The same unpinned pip install autotrader_scraper instruction is repeated in docs/AUTOTRADER_INTEGRATION.md.

Technical Analysis

The project recommends installing autotrader_scraper directly from the package index without an exact version, integrity hash, lockfile, or package-provenance verification. The primary dependencies likewise use lower-bound-only constraints, allowing future releases outside the audited dependency set to be installed.

Python package installation may execute package-controlled build backends and installation logic. Therefore, the code ultimately executed during installation can change after this project has been reviewed. If the package publisher account or distribution infrastructure is compromised, or if package ownership changes, following the documented command could install and execute attacker-controlled code.

This finding does not establish that the current autotrader_scraper package is malicious. The vulnerability is the absence of controls ensuring that users receive the specific dependency artifacts reviewed and tested by the project.

Attack Path

  1. An attacker compromises the publisher account or release pipeline for autotrader_scraper, takes control of the package name, ...[truncated 1863 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every production dependency to an exact, reviewed version:

    text
    requests==<reviewed-version>
    beautifulsoup4==<reviewed-version>
    lxml==<reviewed-version>
    autotrader_scraper==<reviewed-version>
    
  2. Generate and commit a hash-locked requirements file containing hashes for every direct and transitive dependency. Install it using:

    bash
    python -m pip install --require-hashes -r requirements.lock
    
  3. Replace every documented pip install autotrader_scraper command with installation from the reviewed lockfile. Keep README and integration documentation consistent.

  4. Verify the package's publisher, repository, release provenance, and source-to-wheel correspondence before approving a version. Record the reviewed version and artifact hashes.

  5. Use a controlled internal package mirror or artifact registry that only contains approved artifacts. Disable unexpected fallback to public indexes where practical.

  6. Run dependency installation in an isolated virtual environment or container under a non-privileged account. Do not install the package with administrator or root privileges.

  7. Add automated dependency review, vulnerability scanning, and controlled update pull requests. Require security review and test execution before changing locked versions.

  8. If the optional package cannot be reliably verified, remove the installation recommendation and retain the local fallback implementation, or vendor a reviewed implementation while maintaining an explicit update process.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability appears to include analytics modules and popularity/sales-speed inference rather than the broad advisory checks advertised. That mismatch creates a trust and provenance problem: consumers may believe the skill verified reliability or history-related factors when it only computed market statistics from listings.

Content

No source excerpt is available for this finding.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · docs/IMAGE_ANALYSIS_GUIDE.md (reported line 260)May include surrounding context.

md
### Interior: 🟢 ACCEPTABLE
- Steering wheel: Light wear consistent with [mileage]
- Seats: Clean, no tears
- Dashboard: No warning lights visible

### Overall Cleanliness: 🟢 GOOD
- Exterior: Clean, appears dealer-prepped

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README says the skill activates automatically when users mention common phrases like "used car," "best used car," "MOT history," and any UK brand with "used." These are broad everyday phrases in normal automotive discussions, and the file does not provide exclusion conditions or narrower scope to distinguish when the skill should or should not trigger.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly describes executing live searches, downloading external listing photos, and analyzing third-party content without clearly requiring informed user consent or warning about external network access. In an agent setting, this can lead to unexpected retrieval from external sites, privacy surprises, and exposure to untrusted remote content during normal conversation flow.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill instructs the agent to read local docs and perform live network searches against external marketplaces, but it does not declare any tool scope, permissions, or allowed-tools. This creates hidden capability expansion: a host may invoke file and network actions that users and policy layers cannot clearly audit or constrain.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description uses broad topic-based activation language, which can make the skill fire on loosely related automotive conversations. In the context of a skill that also seeks network/file capabilities, ambiguous activation increases operational risk and user surprise.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition includes generic cases like when the user 'mentions they need help,' which is too broad for a specialized skill. Overbroad activation can cause the skill to engage unexpectedly, increasing the likelihood of unnecessary file reads, network searches, or off-topic guidance.

Content

No source excerpt is available for this finding.

Behavior Manipulation

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Subtle instructions detected that may alter agent decision-making or introduce hidden biases.

Content

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

md
- Present recommendations with actual listings as evidence

**When to use:**
- User asks for car recommendations (always prefer this over pure inference)
- User provides budget + location
- After gathering initial requirements in Stage 1-2

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
**Step-by-step process:**

**3.1 Generate Search Strategies**
Based on user requirements, create 3-5 search strategies covering:
- Different reliable brands/models
- Budget spread (e.g., if budget is £10k, try searches at £8k-£10k, £9k-£10k)
- Variations in fuel type (petrol, hybrid, diesel)

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The service boundaries say the skill must not provide negotiation tactics, but the workflow includes a negotiation stage and references price discussion tactics. Conflicting instructions increase the chance the agent will bypass intended safety boundaries and provide disallowed guidance in practice.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger keywords "check photos", "analyze images", and similar generic phrases are broad enough to match many unrelated conversations, which can cause unintended invocation of this skill outside its intended used-car context. Over-broad activation increases the chance of context hijacking, irrelevant recommendations, and accidental processing of user inputs that were meant for another capability.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document consistently uses UK-specific currency, regulations, marketplaces, and insurance assumptions such as £ pricing, MOT, ULEZ, VED, Gumtree, and Auto Trader. Because the guidance is written as general conversation strategy for users looking for used cars, this creates a language/locale policy issue by implicitly forcing a specific regional context without user opt-in or an explicit documented scope.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The guide explicitly instructs collecting a user's city/location and using it to query an external marketplace, but it does not require informing the user that this personal data will be sent off-platform. This creates a privacy/transparency issue because users may disclose location details without understanding they will be transmitted to a third party for live searches.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The workflow directs the agent to run shell commands that perform live marketplace searches, which necessarily trigger external network requests, but it does not require a user-facing disclosure or approval before doing so. In agent contexts, silent external requests can leak user preferences, budget, and location to third parties and violate expectations around data handling.

Content

No source excerpt is available for this finding.

YARA rule 'network_reconnaissance': Network reconnaissance and scanning patterns [hacktools]

Medium
Category
YARA Match
Confidence
65% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · docs/DATA_DRIVEN_RECOMMENDATION.md (reported line 314)May include surrounding context.

md
💷 Actual prices: £6,995 - £9,950 (average £8,800)
- 📅 Typical condition: 3-7 years old, 35k-60k miles
- 🏪 65% Trade sellers (most with warranty)

⭐ **Why Recommended:**
1. **Best Value** - Average price £8,800, £1,200 below budget, room to spare
2. **Legendary Reliability** - What Car? reliability rating ⭐⭐⭐⭐⭐
3. **Abundant Choices** - 23 for sale, won't struggle due to fierce competition
4. **Flexible Space** - Magic Seats, extremely high space utilization
5. **Low Running Costs** - Insurance group 7-12, VED £20-£165/year

⚠️ **Cautions:**
- Pre-2015 old model looks dated, recommend 2016+ facelift
- CVT automatic not fast-accelerating, but smooth enough for daily commute

🔗 **View actual listings:** [Gumtree search link]

---

### 【Runner-up】Toyota Yaris Hybrid (2017-2020)

📊 **Real Market Data:**
- ✓ 45 vehicles for sale (most choices)
- 💷 Actual prices: £7,500 - £10,000 (average £9,200)
- 📅 Typical condition: 4-7 years old, 40k-6

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The documentation materially expands the skill from advisory recommendations into active live marketplace scraping and subsequent analysis of third-party listing content. That broadening increases the skill’s capability surface, including network access, untrusted external content ingestion, and operational behavior not clearly bounded by the original stated purpose, which can enable unexpected data flows or misuse.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The photo-analysis workflow adds a new inspection capability that instructs the agent to fetch and interpret external images from listing URLs, despite that function not being clearly justified by a used-car recommender’s declared scope. This increases exposure to untrusted remote content and encourages higher-trust judgments about listing authenticity and vehicle condition without explicit safety, privacy, or reliability guardrails.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The document directs use of UK-only references such as MOT history checks at gov.uk, HPI checks, UK pricing in pounds, and 'Common UK Market Issues by Brand,' but does not clearly state that the skill is UK-only or require user confirmation of locale. That creates a locale-policy concern because the guidance is tailored to a specific region by default rather than offering choice or clearly justifying the restriction up front.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The workflow says it applies when a user 'asks about buying a used car or mentions they need help.' The phrase 'need help' is too generic and could match many unrelated conversations, making unintended invocation more likely.

Content

No source excerpt is available for this finding.