Back to skill

Security audit

Ai Ppt Generator 1

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it says: it uses Baidu AI APIs to generate PowerPoint files, with no evidence of hidden persistence, local data harvesting, or destructive behavior.

Install only if you are comfortable sending PPT topics and any provided source content to Baidu's AI PPT service using your BAIDU_API_KEY. Avoid using it with confidential, regulated, or proprietary material unless your Baidu account and data-handling requirements allow that, and keep the API key scoped and protected.

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
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

This mismatch is security-relevant because the skill understates operational behavior: it depends on an external API key, retrieves remote data, and invokes another script via subprocess, which is broader than simple template selection. When a skill's declared purpose omits external access and subprocess behavior, users and agents may authorize it without understanding the true execution and data-exposure surface.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

This mismatch is security-relevant because the skill understates operational behavior: it depends on an external API key, retrieves remote data, and invokes another script via subprocess, which is broader than simple template selection. When a skill's declared purpose omits external access and subprocess behavior, users and agents may authorize it without understanding the true execution and data-exposure surface.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

This mismatch is security-relevant because the skill understates operational behavior: it depends on an external API key, retrieves remote data, and invokes another script via subprocess, which is broader than simple template selection. When a skill's declared purpose omits external access and subprocess behavior, users and agents may authorize it without understanding the true execution and data-exposure surface.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill declares capabilities requiring environment access, shell execution, and implicit network use via external API calls, but it does not define an explicit tool scope such as permissions or allowed-tools. This creates an overbroad execution surface where an agent may invoke more powerful tools than users expect, increasing the risk of secret exposure or unintended command execution.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The function sends user-supplied query content to Baidu's external AI PPT service to generate an outline. This is a real data exfiltration boundary: any sensitive prompt content provided to the skill is transmitted to a third party, and the code does not perform consent checks, redaction, or data classification before sending it.

Content

Scanner excerpt · scripts/generate_ppt.py (reported line 59)May include surrounding context.

python
outline = ""
    chat_id = ""
    query_id = ""
    with requests.post(URL_PREFIX + "generate_outline", headers=headers, json=params, stream=True) as response:
        for line in response.iter_lines():
            line = line.decode('utf-8')
            if line and line.startswith("data:"):

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

The PPT generation request transmits the full generated outline, title, query, and optional web_content to an external service, with web_content potentially containing large amounts of copied or sensitive source material. In this skill context, external transmission is core functionality, but it still creates a genuine confidentiality risk because user-provided content may be uploaded to a third-party provider without minimization or safeguards.

Content

Scanner excerpt · scripts/generate_ppt.py (reported line 111)May include surrounding context.

python
"web_content": web_content,
        "enable_save_bos": True,
    }
    with requests.post(URL_PREFIX + "generate_ppt_by_outline", headers=headers, json=params, stream=True) as response:
        if response.status_code != 200:
            print(f"request failed, status code is {response.status_code}, error message is {response.text}")
            return []

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill hard-codes all theme categories in Chinese and later uses Chinese-only keyword matching and user-facing labels, which makes the behavior locale-specific by default. There is no visible opt-in, fallback language selection, or documentation that this is intentionally limited to Chinese users or content.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/random_ppt_theme.py (reported line 267)May include surrounding context.

python
]
        
        start_time = int(time.time())
        process = subprocess.Popen(
            cmd,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,

Static analysis

No suspicious patterns detected.