Back to skill

Security audit

Ai Ppt Generator 1.1.3

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently uses Baidu AI to generate PowerPoint files and does not show hidden persistence, credential theft, destructive actions, or unrelated behavior.

Install only if you are comfortable sending PPT topics, generated outline content, and any optional web_content to Baidu AI using your BAIDU_API_KEY. Avoid submitting confidential, regulated, or secret material unless your organization permits Baidu processing.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

While description-behavior mismatch alone is often non-security, this variant also notes undeclared access to API credentials/environment and remote theme retrieval. Hidden or understated use of credentials and external calls can undermine user trust and reviewability, especially when the skill markets itself as simple content-based selection but actually performs broader external interactions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

While description-behavior mismatch alone is often non-security, this variant also notes undeclared access to API credentials/environment and remote theme retrieval. Hidden or understated use of credentials and external calls can undermine user trust and reviewability, especially when the skill markets itself as simple content-based selection but actually performs broader external interactions.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

While description-behavior mismatch alone is often non-security, this variant also notes undeclared access to API credentials/environment and remote theme retrieval. Hidden or understated use of credentials and external calls can undermine user trust and reviewability, especially when the skill markets itself as simple content-based selection but actually performs broader external interactions.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill declares access to environment variables and relies on networked/scripted execution, but it does not declare any explicit tool scope such as permissions or allowed-tools. This weakens the security boundary by making sensitive capabilities like shell execution and API-key use implicit rather than constrained and reviewable.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to submit PPT topics and potentially content to Baidu AI, but it does not warn that this data will be sent to a third party for processing. This creates a privacy and data-governance risk because users may unknowingly disclose sensitive business, educational, or personal material to an external service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This request sends the user's query to an external Baidu endpoint to generate an outline, which is an intentional part of the skill's functionality. While not inherently malicious, it is a real data exposure boundary because user input leaves the local environment and may include sensitive business or personal information.

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:"):

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill transmits user-provided query text, generated outline content, title, and optional web_content to a third-party Baidu service without any explicit disclosure or consent mechanism in the code path. This can expose sensitive or proprietary input if users assume the skill operates locally or are not warned that their content will be sent off-platform.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This call transmits a richer payload externally, including query_id, chat_id, original query, generated outline, title, selected template identifiers, and optional web_content. Because web_content may contain large amounts of copied or sensitive material, this step increases the risk of unintended disclosure to the third-party provider.

Content

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

python
"tpl_id": tpl_id,
        "web_content": web_content
    }
    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
90% confidence
Finding

The skill hard-codes category names and later exposes them to users in Chinese, while argument help text and query guidance also require Chinese terms. This creates a language/locale constraint without any opt-in or documented justification, which matches the policy-violation category for forced language use.

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,

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The manifest says the skill generates PPTs with Baidu AI and smart template selection, but it does not mention handling credentials or reading local environment state. Accessing BAIDU_API_KEY is a capability beyond the user-facing purpose, even though it is used to authenticate the external service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

This code sends an authenticated network request to an external Baidu endpoint using the user's API key, but there is no confirmation prompt, user-facing notice, or explanatory comment/docstring describing that external transmission. For code files, outbound network calls that transmit user or system data should have some visible disclosure unless clearly documented as part of the skill's stated purpose.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.