Back to skill

Security audit

nano banana pro pptx

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Gemini-based PowerPoint generator, with expected network use and local output files but some privacy and dependency-hardening caveats.

Install only if you are comfortable sending presentation prompts and generated slide content to Gemini or the configured proxy endpoint. Avoid confidential material unless that external processing is approved, and prefer running it in an isolated environment with pinned dependencies if supply-chain reproducibility matters.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
scripts/generate_pptx.py:1
Finding
Unpinned Runtime Dependencies Create Supply-Chain Risk## Vulnerability Details **File Location**: `scripts/generate_pptx.py`, lines 1–7 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium **Vulnerable code:** ```python # /// script # requires-python = ">=3.11" # dependencies = [ # "google-genai", # "python-pptx", # "Pillow", # ] # /// ``` ### Technical Analysis The script declares three third-party packages without exact versions or integrity hashes. The documented execution method uses `uv run`, which may dynamically resolve and install versions available at execution time. Consequently, the effective dependency set can change after the Skill has been reviewed. This creates a mutable software-supply-chain boundary. A compromised package release, maintainer account, package index, or transitive dependency could introduce attacker-controlled installation or runtime code. There is no committed lockfile or hash verification in the audited project to constrain resolution to reviewed artifacts. No evidence indicates that the currently named packages are malicious. The vulnerability is the absence of reproducible, integrity-verified dependency resolution. ### Attack Path 1. An attacker compromises a declared package, one of its transitive dependencies, or the package-distribution channel. 2. The attacker publishes a malicious release that remains compatible with the unconstrained dependency declaration. 3. A user invokes the Skill through the documented `uv run` command in an environment where the malicious version is selected during dependency resolution. 4. The dependency's installation or imported runtime code executes within the Skill process. 5. The malicious code inherits the invoking user's permissions and can access process data, environment variables, generated presentation data, and files accessible to that user. ### Impact Assessment Successful exploitation would execute code with the privileges of the user running the S ...[truncated 443 chars]
Remediation
## Remediation Suggestions 1. Pin every direct dependency to an exact, reviewed version rather than relying on unconstrained package names. 2. Generate and commit a lockfile that records the complete transitive dependency graph. 3. Run `uv` in locked or frozen mode so execution fails rather than silently changing the resolved dependency set. 4. Use package hashes or signed artifact verification where supported. 5. Restrict dependency retrieval to trusted package indexes and prevent unintended fallback to public or unapproved repositories. 6. Add automated dependency vulnerability and provenance scanning to the release process. 7. Periodically update dependencies through an explicit review process, regenerating the lockfile only after testing and security validation. 8. Run the Skill in a least-privileged, isolated environment with access only to the required API credential and output directory.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The documented behavior understates what the skill actually does: it sends prompts to Gemini for planning, may embed generated text into images, and creates multiple auxiliary files on disk beyond the final PPTX. That mismatch can cause unintended disclosure of sensitive prompt content, surprise artifact persistence, and misuse in environments where only a simple image deck generator was expected.

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill invokes a script that uses environment variables, writes files, and makes outbound network requests, but the manifest does not declare any tool scope or allowed-tools boundaries. This weakens reviewability and least-privilege controls, making it easier for users or orchestrators to underestimate what the skill can access and do.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill description does not clearly warn that the user's prompt and related presentation data are transmitted to an external Gemini service. In practice, users may provide confidential business topics, internal strategy, or proprietary content, creating a data exposure risk when that information is sent to a third-party API or proxy endpoint.

Static analysis

No suspicious patterns detected.