Back to skill

Security audit

Daily Game News

Security checks across malware telemetry and agentic risk

Overview

This skill is a disclosed game-news crawler and report generator, with some privacy and transport-security caveats but no artifact-backed malicious behavior.

Install this only if you are comfortable with a scheduled crawler making outbound requests, storing reports locally, and potentially sending report content through your messaging workflow. Avoid using it for internal or sensitive URLs unless you add URL allowlisting, disable third-party proxy fetching, and restore normal TLS verification in the RSS helper.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
try:
        # 使用 curl 抓取 HTML
        result = subprocess.run(
            ['curl', '-s', '-A', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 
             '--max-time', '30', '-L', target_url],
            capture_output=True, text=True, timeout=35
Confidence
80% confidence
Finding
result = subprocess.run( ['curl', '-s', '-A', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', '--max-time', '30', '-L', target_url], captu

subprocess module call

Medium
Category
Dangerous Code Execution
Content
script_path = os.path.join(os.path.dirname(__file__), 'web_fetch_wrapper.py')
        
        if os.path.exists(script_path):
            result = subprocess.run(
                ['uv', 'run', script_path, url],
                capture_output=True, text=True, timeout=30
            )
Confidence
84% confidence
Finding
result = subprocess.run( ['uv', 'run', script_path, url], capture_output=True, text=True, timeout=30 )

subprocess module call

Medium
Category
Dangerous Code Execution
Content
def fetch_html(url, timeout=30):
    """使用 curl 抓取 HTML"""
    try:
        result = subprocess.run(
            ['curl', '-s', '-A', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
             '--max-time', str(timeout), '-L', '--compressed', url],
            capture_output=True, text=True, timeout=timeout + 5
Confidence
88% confidence
Finding
result = subprocess.run( ['curl', '-s', '-A', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', '--max-time', str(timeout), '-L', '--compressed', url],

Intent-Code Divergence

Medium
Confidence
89% confidence
Finding
The module claims it performs direct crawling, but for some sites it silently sends requested URLs through the external r.jina.ai proxy service. This creates an unexpected data-flow boundary: requested targets and fetched content are disclosed to a third party, which can violate operator expectations, privacy assumptions, or compliance requirements in a security-sensitive environment.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
The script explicitly disables TLS certificate verification for both the requests and urllib code paths, which allows a man-in-the-middle attacker to intercept or modify RSS content fetched over HTTPS. Because the fetched feed data is then parsed and presented as trusted output, users may consume attacker-controlled content without any indication that transport security was bypassed.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The README states that reports are pushed via Feishu private message and stored locally as Word documents, but it does not clearly warn users that fetched third-party content and metadata will be transmitted off-process and retained on disk and in logs. This creates a transparency and privacy issue: users may invoke the skill without understanding where data goes or how long it persists.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill explicitly states that it will send reports via Feishu and archive Word/text copies to fixed local paths, but the documentation does not present this as a user-facing warning or consent point. This can lead to unintended disclosure or retention of potentially sensitive browsing, reporting, or business intelligence data, especially in an automated daily workflow.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
When use_web_fetch is enabled, the code sends the destination URL to https://r.jina.ai/, which discloses browsing targets and causes a third party to retrieve content on the user's behalf. This creates a data-leak/privacy issue and changes the trust boundary without clear user consent, which is especially risky in an agent skill that may be run against sensitive or internal targets from configuration.

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.