Back to skill

Security audit

网络研究助手

Security checks across malware telemetry and agentic risk

Overview

This is a cloud-backed web research skill, but it stores an API key in a local plaintext .env file and sends user inputs to an external service without enough disclosure.

Install only if you trust the Xiaobenyang service with your searches, URLs, stack traces, package names, and other submitted context. Use a scoped or revocable API key, keep the generated .env file out of source control and backups where possible, and avoid sending private internal links, secrets, tokens, or proprietary error logs through this skill.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (17)

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill documentation describes capabilities that imply environment access, file read/write, and network use, but it does not declare permissions or provide corresponding user-facing consent boundaries. This weakens reviewability and can lead to users invoking a skill without understanding that it may read configuration, persist secrets, or transmit data externally.

Description-Behavior Mismatch

Medium
Confidence
86% confidence
Finding
The skill is presented as a web research/discovery assistant, but the toolset includes broader package analysis, GitHub evaluation, error translation, API docs discovery, and comparison workflows. This scope mismatch can mislead users about what data the skill may process and what external services it may contact, undermining informed consent and safe use.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
This module does more than configuration loading: it persists API credentials into a local .env file and mirrors them into process environment variables. In a skill intended for web research, silently storing secrets on disk increases the chance of credential exposure through accidental commits, weak file permissions, backups, or logs, even if the behavior appears convenience-driven rather than malicious.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The description omits any warning that user queries, URLs, crawled page contents, package names, error messages, and similar inputs may be sent to third-party or remote services. In a network-research skill, this omission is more dangerous because users are likely to submit proprietary links, internal errors, or sensitive research targets without realizing the data may leave the local environment.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs the model to ask the user for an API key and persist it via a configuration function, but provides no warning about storage location, retention, masking, or who can later access that credential. Collecting and saving credentials in plain workflow instructions creates a high-risk secret-handling path that can expose the key through logs, files, backups, or later tool outputs.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The function writes the API key to .env without any user-facing warning, disclosure, or confirmation. Persisting credentials silently is dangerous because users may not realize their secret is being stored in plaintext on disk, where it can later be exposed via source control, shared directories, backups, or local compromise.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
All helper functions forward user-supplied inputs, including free-form queries, URLs, error messages, and 'reasoning' text, to an external API via call_api without any visible disclosure, minimization, or consent mechanism in this file. This creates a data-exposure risk because users may unknowingly send sensitive internal context, stack traces, tokens embedded in URLs, or proprietary research prompts to a remote service.

Ssd 3

Medium
Confidence
97% confidence
Finding
The skill explicitly tells the agent to solicit, store, and then continue using a user-provided API key, establishing a sensitive-data collection and retention workflow. In context, this is especially risky because the same skill also has file and network capabilities, increasing the chance that the credential could be persisted insecurely or transmitted beyond the user's expectation.

Ssd 3

Medium
Confidence
95% confidence
Finding
The instruction to directly present raw API return data to the user creates a data-exposure risk because raw responses may contain secrets, tokens, internal URLs, full stack traces, personal data, or other sensitive fields. This is particularly dangerous for a web research skill that crawls pages, processes errors, and interacts with multiple external services where returned payloads can be large and unpredictable.

Credential Access

High
Category
Privilege Escalation
Content
def save_api_key_to_env(api_key: str) -> bool:
    """将API key保存到.env文件"""
    try:
        env_path = Path(".env")
        lines = []
        if env_path.exists():
            lines = env_path.read_text(encoding="utf-8").splitlines()
Confidence
90% confidence
Finding
.env"

Credential Access

High
Category
Privilege Escalation
Content
def set_api_key(api_key: str) -> bool:
    """设置API key并持久化到.env"""
    if not api_key or not api_key.strip():
        return False
    api_key = api_key.strip()
Confidence
90% confidence
Finding
.env"

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.31.0
pydantic>=2.7.0
pydantic-settings>=2.2.0
python-dotenv>=1.0.1
Confidence
94% confidence
Finding
requests>=2.31.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.31.0
pydantic>=2.7.0
pydantic-settings>=2.2.0
python-dotenv>=1.0.1
Confidence
92% confidence
Finding
pydantic>=2.7.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.31.0
pydantic>=2.7.0
pydantic-settings>=2.2.0
python-dotenv>=1.0.1
Confidence
92% confidence
Finding
pydantic-settings>=2.2.0

Unpinned Dependencies

Low
Category
Supply Chain
Content
requests>=2.31.0
pydantic>=2.7.0
pydantic-settings>=2.2.0
python-dotenv>=1.0.1
Confidence
94% confidence
Finding
python-dotenv>=1.0.1

Known Vulnerable Dependency: requests==2.31.0 — 3 advisory(ies): CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi); CVE-2026-25645 (Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility func)

Low
Category
Supply Chain
Confidence
96% confidence
Finding
requests==2.31.0

Known Vulnerable Dependency: python-dotenv==1.0.1 — 1 advisory(ies): CVE-2026-28684 (python-dotenv: Symlink following in set_key allows arbitrary file overwrite via )

Low
Category
Supply Chain
Confidence
83% confidence
Finding
python-dotenv==1.0.1

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.