Back to skill

Security audit

AI B站信息源

Security checks across malware telemetry and agentic risk

Overview

The skill is mostly a Bilibili AI report generator, but its optional subscription mode and investigation instructions create review-worthy privacy and credential risks.

Review before installing if you plan to use subscription mode or provide a real RedFox API key. Avoid enabling --subscribe until plaintext key storage and crontab/LaunchAgent behavior are fixed, and treat the bundled person-background and litigation investigation guidance as out of scope unless you explicitly need that capability and have appropriate authorization.

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
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (22)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
plist_path.write_text(plist_content, encoding="utf-8")

        try:
            subprocess.run(["launchctl", "load", str(plist_path)], check=True, capture_output=True)
            info("订阅成功! 每天 09:00 自动生成B站爆款日报")
            info(f"日报目录: ~/Downloads/QoderReports/")
            info(f"日志: {log_path}")
Confidence
90% confidence
Finding
subprocess.run(["launchctl", "load", str(plist_path)], check=True, capture_output=True)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
script_path = os.path.abspath(__file__)
        cron_line = f"0 9 * * * /usr/bin/python3 {script_path} --no-open"
        try:
            subprocess.run(
                f'(crontab -l 2>/dev/null; echo "{cron_line}") | crontab -',
                shell=True, check=True, capture_output=True
            )
Confidence
96% confidence
Finding
subprocess.run( f'(crontab -l 2>/dev/null; echo "{cron_line}") | crontab -', shell=True, check=True, capture_output=True )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
else:
        script_path = os.path.abspath(__file__)
        try:
            subprocess.run(
                f'crontab -l 2>/dev/null | grep -v "{script_path}" | crontab -',
                shell=True, check=True, capture_output=True
            )
Confidence
97% confidence
Finding
subprocess.run( f'crontab -l 2>/dev/null | grep -v "{script_path}" | crontab -', shell=True, check=True, capture_output=True )

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill advertises and documents capabilities that access environment variables, read and write local files, invoke shell commands, and make network requests, yet it declares no explicit permissions. This weakens user and platform visibility into what the skill can do, making sensitive actions like reading API keys, modifying local files, and executing commands harder to review and constrain.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The documented behavior materially exceeds the stated purpose and user expectations: it can install scheduled tasks, auto-open browser content, read API keys from shell configuration files, and use --latest to bypass the stated confirmation requirement for unavailable dates. This mismatch is dangerous because users may consent to a simple report-generation skill while it persists on the system, accesses sensitive local configuration, and performs networked actions without the level of disclosure or confirmation the description promises.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
The README says the skill will automatically retrieve the latest available date and generate reports, which conflicts with the stated safety requirement that when target-date data is unavailable, the user must first be informed and explicit confirmation obtained before any fallback retrieval occurs. This creates a realistic risk of unauthorized data access or unexpected API calls because operators may implement behavior from the README rather than the stricter manifest rule.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The README explicitly says the skill will automatically fetch the latest available date, which conflicts with the stated safety requirement that if the requested date has no data, the user must be informed and the system must wait for confirmation before calling the API. This can cause unauthorized or surprising data retrieval, weakening user consent and making the agent behave contrary to its declared operating constraints.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The report generator injects the API key into the produced HTML via template replacement. That exposes a credential in a user-viewable, shareable artifact unrelated to the report's functional needs, creating a straightforward secret disclosure risk.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The skill reads shell initialization files to extract an API key, expanding its access to unrelated user configuration data. For a reporting tool, harvesting secrets from dotfiles is unnecessarily invasive and increases the blast radius if the skill is compromised or misused.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
This block implements system-level scheduled task installation/removal, which is beyond the minimum capability needed to generate a report on demand. Persistence plus automatic execution materially increases the consequences of any future bug or secret-handling issue in the script.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The reference document expands the skill from a declared B站 AI feed/reporting tool into a broad investigation playbook covering competitor intelligence, public-opinion events, person background checks, and general due diligence. This capability drift is dangerous because an agent may rely on these instructions to perform open-ended investigative tasks outside user expectations and outside the skill’s stated purpose, increasing privacy, misuse, and policy-bypass risk.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
This section explicitly instructs the skill to conduct person-background, reputation, controversy, and litigation-related searches. In the context of a B站 AI news/report skill, that is not clearly necessary and creates a direct pathway to intrusive profiling or reputational investigations of individuals, which is substantially more sensitive than content aggregation.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The documented scenarios include financing verification and legal/litigation checks, which are outside the declared purpose of generating B站 AI reports. This broadens the skill into due-diligence and legal-research territory, enabling use cases that users and reviewers would not reasonably infer from the manifest and increasing the chance of unauthorized or overbroad data collection.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
The documented investigation modes significantly expand the skill from a narrowly scoped Bilibili AI feed/reporting tool into a general-purpose OSINT and inquiry agent covering competitor intelligence, public-opinion monitoring, personal background checks, and arbitrary fact verification. This scope creep enables privacy-invasive profiling and broad surveillance-style use that is inconsistent with the stated skill purpose, making misuse easier and reducing the effectiveness of user-consent and policy guardrails.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The file defines broad investigation report templates for competitor intelligence, public-opinion incidents, person background checks, and fact verification, which materially expands the skill beyond its stated B站AI feed/news scope. This scope creep is dangerous because it enables general-purpose intelligence gathering and profiling workflows that can be repurposed for privacy-invasive or sensitive investigations without clear authorization boundaries or use-case restrictions.

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
The configuration describes a generic intelligence investigation tool supporting competitor analysis, sentiment monitoring, background investigation, and cross-source verification, which is materially broader than the declared B站 AI feed use case. This creates a scope-expansion risk: the skill can be repurposed for general surveillance or investigations unrelated to B站 AI content, increasing privacy, misuse, and policy exposure.

Context-Inappropriate Capability

High
Confidence
96% confidence
Finding
Including a '人物背景调查' mode enables personal background investigation, which exceeds the reasonable scope of a B站 AI content discovery skill. In practice, this can facilitate privacy-invasive profiling or targeted intelligence gathering on individuals under the cover of a benign media-monitoring tool.

Context-Inappropriate Capability

Medium
Confidence
84% confidence
Finding
The presence of the Jisilu financial-investment search engine is unrelated to the stated B站 AI information-source purpose and signals unnecessary capability expansion. While not directly dangerous on its own, irrelevant data-source inclusion weakens least-privilege design and can enable off-topic intelligence gathering beyond user expectations.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The feature description advertises daily subscription but does not warn at that point that reports are automatically saved locally. That omission can cause users to enable persistent collection and storage without understanding the retention/privacy implications, especially when reports may contain tracked topics, links, and investigation outputs over time.

Vague Triggers

Medium
Confidence
78% confidence
Finding
The guidance to use unrestricted natural-language requests broadens invocation conditions and can make the skill trigger more easily than intended. In this skill's context, that increases the chance of accidental activation and unintended API usage, especially given the separate requirement not to auto-fetch when date data is unavailable.

Missing User Warnings

High
Confidence
99% confidence
Finding
This line directly substitutes the API key into HTML content without warning or need. Any generated report can then leak the credential through disk storage, browser history, screenshots, syncing, or sharing.

Missing User Warnings

High
Confidence
98% confidence
Finding
The subscription installer writes the API key into a LaunchAgent plist, persisting the secret in plaintext on disk. That creates long-lived credential exposure to other local processes or users with filesystem access and couples persistence with secret leakage.

VirusTotal

48/48 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.