Back to skill

Security audit

Nano Banana 2 Image Generation&Editing

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed image-generation and image-editing helper that sends prompts or images to Atlas Cloud or Google APIs as expected for its purpose.

Install only if you are comfortable sending image prompts and any selected images to Atlas Cloud or Google AI Studio using your own API key. Avoid using confidential, regulated, or highly personal images unless you explicitly intend to upload them to those services.

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (12)

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger description is extremely broad, matching generic requests like creating thumbnails, banners, logos, product photos, or any visual asset. Over-broad routing can cause this skill to activate in contexts the user did not intend, leading to unnecessary third-party transmission of prompts or images and increasing the chance of accidental file upload or API-key-backed actions.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 37)May include surrounding context.

md
3. If both are set → ask the user which provider to use
4. If neither is set → ask the user to configure one:
   - **Atlas Cloud**: Sign up at https://www.atlascloud.ai, Console → API Keys → Create key, then `export ATLASCLOUD_API_KEY="your-key"`
   - **Google AI Studio**: Get key from https://aistudio.google.com/apikey, then `export GEMINI_API_KEY="your-key"`

**Atlas Cloud**
- Async API with polling workflow

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 220)May include surrounding context.

md
## Mode 2: Google AI Studio (Official)

### Setup
1. Get API key from https://aistudio.google.com/apikey
2. Set environment variable: `export GEMINI_API_KEY="your-key"`

### Text-to-Image Generation

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill requires environment access and performs network operations, but it does not declare an explicit tool scope such as allowed tools or permissions. This weakens isolation and reviewability because an agent may invoke networked behavior without a narrowly declared boundary, increasing the chance of unintended API use or data egress.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This instruction sends user prompts to Atlas Cloud over the network, which is an external data transfer. In this skill context that is expected functionality, but it is still security-relevant because user content and API-authenticated requests leave the local environment and are handled by a third party.

Content

Scanner excerpt · SKILL.md (reported line 136)May include surrounding context.

bash
# Step 1: Submit generation request
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This instruction sends user prompts to Atlas Cloud over the network, which is an external data transfer. In this skill context that is expected functionality, but it is still security-relevant because user content and API-authenticated requests leave the local environment and are handled by a third party.

Content

Scanner excerpt · SKILL.md (reported line 136)May include surrounding context.

bash
# Step 1: Submit generation request
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This step uploads a local file to Atlas Cloud, creating a direct exfiltration path for local image data. Although the skill explicitly says the agent must ask for confirmation first, the capability is inherently sensitive because a mistaken or overly eager invocation could disclose local files to a third party.

Content

Scanner excerpt · SKILL.md (reported line 167)May include surrounding context.

To use local images for editing, first upload them to get a URL. The agent MUST confirm with the user before uploading any local file (e.g., "I'll upload /path/to/image.jpg to Atlas Cloud for editing. Proceed?").

bash
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/uploadMedia" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -F "file=@/path/to/local/image.jpg"
# Returns: { "code": 200, "data": { "download_url": "https://...url...", "filename": "image.jpg", "size": 123456 } }

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The editing workflow submits prompts and referenced image URLs to Atlas Cloud, which creates an external data exposure point. In context this is part of the skill's purpose, but if source images contain sensitive content, the skill enables transmission to a third party and should therefore be treated as a real data-egress risk.

Content

Scanner excerpt · SKILL.md (reported line 189)May include surrounding context.

| resolution | string | No | 1k | 1k, 2k, 4k |

bash
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

The editing workflow submits prompts and referenced image URLs to Atlas Cloud, which creates an external data exposure point. In context this is part of the skill's purpose, but if source images contain sensitive content, the skill enables transmission to a third party and should therefore be treated as a real data-egress risk.

Content

Scanner excerpt · SKILL.md (reported line 189)May include surrounding context.

| resolution | string | No | 1k | 1k, 2k, 4k |

bash
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
89% confidence
Finding

The Google AI Studio editing flow transmits prompts and base64-encoded image content to Google's API, making this a clear external transmission path. Because inline image data may contain sensitive local content, the risk is higher than a purely text-based request even though the behavior is documented.

Content

Scanner excerpt · SKILL.md (reported line 260)May include surrounding context.

Include the source image as base64 inline_data alongside the text prompt:

bash
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 148)May include surrounding context.

md
import urllib.error
import urllib.parse

API_BASE = "https://api.atlascloud.ai/api/v1"
GEMINI_API_BASE = "https://generativelanguage.googleapis.com/v1beta"
GEMINI_MODEL = "gemini-3.1-flash-image-preview"
UA = "AtlasCloud-Skill/1.0"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/generate_image.py (reported line 51)May include surrounding context.

python
import urllib.error
import urllib.parse

API_BASE = "https://api.atlascloud.ai/api/v1"
GEMINI_API_BASE = "https://generativelanguage.googleapis.com/v1beta"
GEMINI_MODEL = "gemini-3.1-flash-image-preview"
UA = "AtlasCloud-Skill/1.0"

Static analysis

No suspicious patterns detected.