Back to skill

Security audit

find-ebooks / 搜好书

Security checks across malware telemetry and agentic risk

Overview

The skill openly searches ebook sites, but it has Review-level concerns because it can surface download links, automatically contact many third-party services, and implicitly use a local WeRead API key if present.

Install only if you intend the agent to search external ebook sources and return third-party download links. Be aware that ordinary book requests may trigger network lookups, search terms may be sent to Anna's Archive and several Chinese book platforms, and a WEREAD_API_KEY in the environment may be used automatically unless the agent runs with --no-weread or the variable is absent. Use it only for lawful access to content you are authorized to obtain.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
Findings (9)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
print(f'\n━━━ 测试: {name} ━━━')
    print(f'命令: {cmd}')
    try:
        r = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=60)
        output = r.stdout + r.stderr
        if r.returncode != 0:
            print(f'❌ 失败 (返回码 {r.returncode})')
Confidence
96% confidence
Finding
r = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=60)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill instructs execution of a Python script, installation of dependencies, use of environment variables, proxy configuration, and network access, yet no explicit permissions are declared. This creates a transparency and consent gap: an agent may invoke networked code and read environment configuration without the user clearly understanding the capability scope.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The skill reads `WEREAD_API_KEY` from the environment and uses it to access an authenticated third-party API, which goes beyond anonymous ebook search and is not clearly justified in the manifest. In an agent environment, this can cause unintended credential use and silent transmission of user-derived search terms to another service.

Vague Triggers

Medium
Confidence
84% confidence
Finding
The trigger conditions include broad natural-language requests such as asking to find books, ebook searches, or book information, which could match routine queries and cause unintended invocation of a networked skill. Because the skill reaches third-party sites and may facilitate downloading, accidental activation can expose user queries to external services and steer the agent into higher-risk behavior than the user expected.

Vague Triggers

Medium
Confidence
80% confidence
Finding
The trigger list includes vague terms like platform names and generic 'find book' language without boundaries, increasing the chance that unrelated conversations invoke the skill. In this skill’s context, that matters because invocation leads to external lookups and potentially copyright-sensitive download discovery.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill prominently supports searching and obtaining download links for ebooks via Anna’s Archive but does not warn users about copyright, licensing, or jurisdictional legality risks. That omission can normalize or automate access to potentially infringing content and increase legal/compliance exposure for users and operators.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The script sends user queries to multiple external services, and may also route them through a user-supplied or environment-derived proxy, without a clear user-facing disclosure at execution time. This creates privacy and data-governance risk because search terms, metadata lookups, and credential-backed requests are transmitted to several third parties.

Env Variable Harvesting

High
Category
Data Exfiltration
Content
@staticmethod
    def check_weread(title, author=""):
        """查询微信读书上架情况"""
        api_key = os.environ.get('WEREAD_API_KEY', '')
        if not api_key:
            return None
Confidence
92% confidence
Finding
os.environ.get('WEREAD_API_KEY

Tool Parameter Abuse

High
Category
Tool Misuse
Content
print(f'\n━━━ 测试: {name} ━━━')
    print(f'命令: {cmd}')
    try:
        r = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=60)
        output = r.stdout + r.stderr
        if r.returncode != 0:
            print(f'❌ 失败 (返回码 {r.returncode})')
Confidence
93% confidence
Finding
subprocess.run(cmd, shell=True

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.