Back to skill

Security audit

爱企查企业情报-招投标实力视角查企业

Security checks across malware telemetry and agentic risk

Overview

The skill mostly matches its company-reporting purpose, but it needs review because it persists credentials and creates shareable reports containing access-bearing signed links.

Review this skill before installing if you handle sensitive company research. Use a manually provisioned `ZLBX_API_KEY` if possible, avoid sharing generated HTML reports outside trusted recipients, and treat `sk` and auto-login URLs like access links rather than harmless citations.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (10)

Lp3

Medium
Category
MCP Least Privilege
Confidence
84% confidence
Finding
The skill explicitly instructs the agent to read from `~/.zlbx/config.json` and write reports to `~/zlbx-company-intel-files/`, but it does not declare corresponding permissions. This creates a transparency and enforcement gap: users and platform controls may not realize the skill accesses local files, including a credential-bearing config file.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The skill instructs the agent to collect device fingerprints (platform, architecture, MAC-derived hash) and automatically register an account, even though the advertised purpose is company-intelligence analysis rather than account provisioning or device-based identity management. This creates unnecessary privacy exposure and hidden account creation risk, and the mismatch between stated purpose and implemented behavior makes consent and data-minimization concerns more severe.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The quota-exhaustion flow pivots from analysis functionality into account monetization behavior by generating a device SID and directing the user to auto-login and recharge flows. In context, this exceeds the expected scope of a company-analysis skill and can nudge users into account actions they did not anticipate, increasing trust and phishing-style abuse risk if similar patterns are normalized.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill writes API credentials to a local config file and modifies persistent account state, despite being presented as a reporting/analysis assistant. Persistent credential storage expands the trust boundary, can surprise users, and may expose secrets if file permissions, merging behavior, or downstream tooling are not carefully controlled.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The template explicitly requires preserving and exposing `sk` parameters in company and announcement URLs and embedding them in report output. If `sk` functions as an authentication bypass or bearer-style access token, anyone receiving the report or exported HTML can reuse those links to access gated resources, causing credential/token leakage and unauthorized access. The risk is amplified because the skill also frames the output as shareable.

Context-Inappropriate Capability

Medium
Confidence
82% confidence
Finding
The template directs the agent to automatically serialize report data to JSON, invoke a local Python script, and write an HTML file to disk by default. In agent environments, automatic local script execution and filesystem writes expand the attack surface: untrusted report content may flow into downstream tooling, and the generated artifact may persist sensitive data in a shareable location without explicit user consent. This is more dangerous here because the report content includes enterprise intelligence and raw access-bearing links.

Vague Triggers

Medium
Confidence
78% confidence
Finding
The trigger language is intentionally broad (e.g. nearly any request to understand a company's 'real strength' must use this skill), which can cause over-triggering on unrelated conversations. In context, that can unnecessarily route user data into external APIs, incur charges, or initiate account-registration flows when the user did not intend to use this integration.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The documentation explicitly enables retrieval and display of project contact phone numbers, including full numbers for paid accounts, while only instructing output formatting and masking behavior. It does not require purpose limitation, user consent, authorization checks, rate limits, or a privacy warning, which creates a real risk of exposing personal contact data for unsolicited outreach, profiling, or scraping.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The markdown instructs the skill to produce shareable HTML reports while retaining raw `sk` URLs, but provides no warning that those links may convey access to authenticated or premium content. Users may redistribute the artifact assuming it is harmless, unintentionally leaking privileged access paths and sensitive enterprise intelligence to third parties. The skill context increases the risk because the report is designed for sharing and contains company-analysis data that may be commercially sensitive.

External Transmission

Medium
Category
Data Exfiltration
Content
> ### ⚠️ 请求体必须用 JSON 序列化函数生成,不要手拼字符串
>
> 用 `json.dumps(payload)` / `requests.post(url, json=payload)` / `JSON.stringify(payload)`,
> 或 `curl -d @file`;**不要用字符串拼接,也不要用 Python 的 `str(dict)`**
> (后者产出单引号,服务端会报 `Expecting property name enclosed in double quotes`)。
>
Confidence
84% confidence
Finding
requests.post(url, json=

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.