Back to skill

Security audit

Ai Ppt Generator 1.1.4

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Baidu AI PPT generator, but users should know their prompt content is sent to Baidu.

Install only if you are comfortable using Baidu's AI PPT service and providing a BAIDU_API_KEY. Treat any PPT topic, outline material, or web_content as data that may be sent to Baidu, and avoid confidential business, personal, or regulated content unless your policy allows it.

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
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

The description omits operationally significant behavior including subprocess/script execution, dependence on a secret API key, and external theme-list/API access. Hidden execution and secret use are security-relevant because they expand the attack surface and can lead to unauthorized network actions or accidental exposure of sensitive configuration if the runtime grants broad shell/env access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The description omits operationally significant behavior including subprocess/script execution, dependence on a secret API key, and external theme-list/API access. Hidden execution and secret use are security-relevant because they expand the attack surface and can lead to unauthorized network actions or accidental exposure of sensitive configuration if the runtime grants broad shell/env access.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The description omits operationally significant behavior including subprocess/script execution, dependence on a secret API key, and external theme-list/API access. Hidden execution and secret use are security-relevant because they expand the attack surface and can lead to unauthorized network actions or accidental exposure of sensitive configuration if the runtime grants broad shell/env access.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill advertises executable capabilities via required binaries and environment variables and clearly instructs running Python scripts that call an external API, but it does not declare an explicit tool scope such as allowed tools or permissions. That creates a governance gap: an agent may grant broader shell, network, or env access than users expect, increasing the chance of unintended command execution or data egress.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill asks users for PPT topics and sends them to Baidu AI, but the description does not warn users that their input is transmitted to a third-party service. This is dangerous because topics may contain proprietary plans, internal reports, or personal data, leading to unintended disclosure and possible compliance violations.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The function sends the user-provided query to Baidu's external generate_outline API, which is a real data egress path. In an agent/skill context, prompts may contain sensitive user or enterprise data, and the code performs no consent check, redaction, or data-classification guard before transmitting it to a third-party service.

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
95% confidence
Finding

This request sends not only the query and generated outline/title, but also optional web_content to Baidu's external generate_ppt_by_outline endpoint. Because web_content may include large bodies of copied page text or sensitive internal material, this creates a broader exfiltration risk than the outline step, especially in enterprise agent deployments.

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 []

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.