Back to skill

Security audit

anjuke-scraper

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed housing-scraper, but it asks to reuse a logged-in Chrome profile and saves contact data, which warrants Review before installation.

Install only if you are comfortable letting the skill automate a Chrome profile with active login cookies and produce local files containing housing-search details, addresses, broker names, and phone numbers. Use a dedicated Chrome profile with only the needed site sessions, keep the output directory private, delete intermediates when done, and check site terms and privacy obligations before using the scraped contact data.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill performs network access and writes multiple local output files, but it does not declare permissions or clearly bound those capabilities. Undeclared capabilities reduce user visibility and weaken policy enforcement, making it easier for the skill to collect or persist data in ways the user did not explicitly authorize.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The skill instructs attachment to the user's live Chrome debugging session and reuse of the user's logged-in state across sites. Access to an existing browser profile exposes far more than housing data, because any cookies, authenticated sessions, and reachable tabs in that profile may be accessible if the automation is misused or compromised.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The documentation explicitly recommends making Amap requests from page context so the user's login cookies can be reused to access poiInfo without an API key. This bypasses normal API authentication boundaries and couples the skill's operation to the user's authenticated web session, increasing the risk of unintended data access or session abuse.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The script explicitly performs Amap requests inside a logged-in browser context and relies on existing cookies and a Referer to avoid using an official API key. This is dangerous because it piggybacks on the user's authenticated session to access a web endpoint in a way that may exceed user expectations, bypass platform controls, and expose account-linked query activity to a third party.

Intent-Code Divergence

Medium
Confidence
92% confidence
Finding
The docstring frames the behavior as simple coordinate retrieval, but it also documents using login cookies and Referer specifically to avoid an API key. That mismatch obscures the real security-relevant behavior from reviewers and users, increasing the chance that authenticated web scraping is deployed without informed consent or proper controls.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The README explicitly instructs users to reuse a logged-in Chrome profile and advertises extraction of broker phone numbers, but it does not clearly warn that this involves privacy-sensitive data and active reuse of authenticated browser state. That combination increases the risk of exposing session cookies, account data, and harvested personal contact information through misuse, accidental disclosure, or insecure handling of generated artifacts.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README shows Excel output containing names, phone/contact fields, and listing links, but does not warn that the generated spreadsheet may contain personal information that requires careful storage, sharing, and retention practices. Users may inadvertently redistribute or mishandle these files, creating privacy and compliance risks.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill description does not adequately warn that it reuses the user's logged-in browser session and cookies for scraping and map lookups. Missing disclosure undermines informed consent, especially because users may not realize authenticated session data is being leveraged for third-party requests.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill generates several local JSON and Excel artifacts containing scraped listings and contact information, but the description does not foreground this persistence risk. Silent or under-documented storage of personal or broker contact data increases the chance of unintended retention, sharing, or later exfiltration from the local filesystem.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The page.evaluate block sends target-place and community search terms to amap.com through the user's existing logged-in browser session without any explicit warning or consent flow. In this skill context, the queries can reveal sensitive housing-search patterns, workplace or school locations, and city preferences, making the silent use of session-backed requests more privacy-impacting than ordinary geocoding.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The script explicitly extracts personal phone numbers from page content and also captures precise address details, then stores them in output artifacts. In the context of a real-estate scraper, this creates a privacy and compliance risk because personally identifiable or sensitive contact data is being collected and persisted without notice, consent handling, minimization, or retention controls.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The script explicitly harvests phone numbers from listing HTML and embedded IDs, then stores them in structured output. In a housing-scraper skill, this is contextually more sensitive because the data is personally identifying contact information and can be reused for unsolicited contact, profiling, or bulk lead collection without any consent or handling notice.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The final write operation persists structured records that include contact information such as phone numbers and contact names into final_records.json. In this skill's real-estate scraping context, that increases privacy and compliance risk because the output becomes an easily reusable dataset of personal contact details that may be copied, shared, or processed further.

Unpinned Dependencies

Low
Category
Supply Chain
Content
playwright>=1.40
openpyxl>=3.1
Confidence
96% confidence
Finding
The dependency is specified with only a lower bound, so future installs may pull newer major or minor releases with breaking changes or newly introduced malicious/compromised transitive content. This weakens build reproducibility and increases supply-chain risk, especially for a scraping skill that depends on browser automation tooling with a large dependency surface.

Unpinned Dependencies

Low
Category
Supply Chain
Content
playwright>=1.40
openpyxl>=3.1
Confidence
96% confidence
Finding
The package is not pinned to an exact version, allowing different environments or future installs to resolve to different releases. That creates non-reproducible builds and a supply-chain exposure window if an upstream release is buggy or maliciously published.

Static analysis

No suspicious patterns detected.