Back to skill

Security audit

bili-user-info

Security checks for vulnerabilities and agentic risk

Overview

This skill performs a disclosed Bilibili public-profile lookup and does not show hidden data access, persistence, credential use, or destructive behavior.

Install only if you are comfortable with the agent making live requests to Bilibili for user IDs you provide. Avoid bulk queries that could violate Bilibili rate limits or terms, and treat returned public-profile data as time-sensitive.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill invokes a Python script that performs network access to the Bilibili API, but the manifest does not declare any tool scope or allowed-tools restrictions. This creates an authorization and review gap: an agent may execute network-capable code without explicit capability disclosure, making misuse, unexpected outbound requests, or policy bypass harder to detect and govern.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The trigger condition lists broad intents such as '询问B站UP主信息' and '分析B站账号数据', which could overlap with many general discussion requests about B站 accounts rather than this specific lookup skill. The file does not provide explicit scope limits, precise trigger phrases, or negative examples to distinguish simple user-info lookup from broader account analysis tasks.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/api_guide.md (reported line 19)May include surrounding context.

md
vmid (str): B站用户ID
        """
        self.vmid = str(vmid)
        self.stat_api = "https://api.bilibili.com/x/relation/stat"
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
            "Referer": "https://www.bilibili.com/",

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/bili_query.py (reported line 33)May include surrounding context.

python
vmid (str): B站用户ID
        """
        self.vmid = str(vmid)
        self.stat_api = "https://api.bilibili.com/x/relation/stat"
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
            "Referer": "https://www.bilibili.com/",

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/bili_query.py (reported line 98)May include surrounding context.

python
vmid (str): B站用户ID
        """
        self.vmid = str(vmid)
        self.stat_api = "https://api.bilibili.com/x/relation/stat"
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
            "Referer": "https://www.bilibili.com/",

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The get_fans docstring states that failures return None, but the implementation returns structured dictionaries like {"error": ...} on HTTP, network, or parsing failures. This is an active contradiction between documentation and behavior rather than a mere omission.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The get_follows docstring documents None as the failure result, while the function returns error dictionaries for API, HTTP, network, and parsing errors. This creates intent-code divergence that can mislead callers about expected behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The get_name docstring promises a string on success and None on failure, but the function returns {"error": ...} in failure cases. This directly contradicts the documented contract and may cause incorrect assumptions by integrators.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.