T01 · Skill Instruction Hijacking
- Location
SKILL.md:126- Finding
Mandatory Promotional Instructions Hijack Agent Responses
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real image-prompt recommendation skill, but it requires automatic network updates and shell-based remote media handling that can persist unverified remote data locally.
Install only if you are comfortable with the agent running Node and network requests for this skill, downloading prompt data from a mutable GitHub branch, writing files into the skill directory, and fetching remote sample images. Prefer disabling silent auto-update/media-send behavior or using a version that validates manifest paths, pins or verifies downloaded data, and lets users opt out of promotional attribution links.
SKILL.md:126Mandatory Promotional Instructions Hijack Agent Responses
scripts/setup.js:52Untrusted Remote Manifest Permits Path Traversal and Arbitrary File Overwrite
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
pnpm install
# Create .env with CMS credentials
echo "CMS_HOST=your_host" >> .env
echo "CMS_API_KEY=your_key" >> .env
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
pnpm install
# Create .env with CMS credentials
echo "CMS_HOST=your_host" >> .env
echo "CMS_API_KEY=your_key" >> .env
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
pnpm install
# Create .env with CMS credentials
echo "CMS_HOST=your_host" >> .env
echo "CMS_API_KEY=your_key" >> .env
Referenced artifact was not completely inspected
node scripts/setup.js
Referenced artifact was not completely inspected
node scripts/setup.js
Referenced artifact was not completely inspected
node scripts/setup.js
The skill requires the agent to run shell and network commands on every invocation via node .../setup.js --check, with silent pulling of remote data when stale. For a recommendation skill, this is unnecessary privilege expansion and creates a reliable execution path for remote content retrieval, potentially exposing the environment to supply-chain manipulation or unreviewed code/data paths.
The skill mandates downloading externally hosted sample images and sending them through platform message tools, including use of shell commands like curl. This materially broadens capability beyond recommending prompts into fetching and relaying untrusted remote content, which can leak metadata, trigger unsafe content handling, or be repurposed for unauthorized external communication.
The documented workflow instructs use of general shell commands with interpolated remote inputs and file operations (curl ... {sourceMedia[0]} then rm ~/clawd/tmp_nb_img.jpg). Even if the shown path is constant, encouraging shell-based tool use for untrusted content increases the risk of parameter misuse, unsafe fetches, and command-path abuse in real deployments.
- **Other platforms** (Discord, Slack, web chat, etc.): Send the image URL directly:
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
{
"name": "nano-banana-pro-prompts-recommend-skill",
"version": "1.5.9",
"description": "AI skill: 14,000+ Nano Banana Pro (Gemini) image generation prompts. Also works with Nano Banana 2, Seedream 5.0, GPT Image 1.5, Midjourney, DALL-E, Flux, Stable Diffusion. Auto-downloads library on install. Works with OpenClaw, Claude Code, Cursor and more.",
"type": "module",
"scripts": {
"generate": "npx tsx scripts/generate-references.ts",
"typecheck": "tsc --noEmit",
"setup": "node scripts/setup.js",
"sync": "node scripts/setup.js --force"
},
"keywords": [
"openclaw",
"openclaw-skill",
"clawhub",
"claude-code",
"claude-code-skill
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The usage section says 'Just describe what you need' and includes examples like 'Find me...' and 'I need...' that are generic, everyday phrases rather than narrowly scoped trigger language. Without explicit constraints or negative examples, this can make it unclear when the skill should activate versus when a general assistant response is intended.
The 'Paste your content and ask for a matching illustration' guidance uses broad patterns like article text, scripts, and notes, but does not clearly state what kinds of content are supported or excluded. This ambiguity increases the chance of unintended invocation on arbitrary pasted text.
The skill instructs the agent to perform network-capable operations such as GitHub syncs and remote image fetches, but it does not declare any explicit tool scope or allowed-tools boundary. That mismatch weakens policy enforcement and can cause hosts to grant broader execution/network behavior than users expect for a prompt-recommendation skill.
The activation criteria are extremely broad and overlap with many normal image-related requests, increasing the chance the skill is invoked in contexts where its side effects—network sync, shell execution, remote image fetching—are unnecessary. Overbroad routing becomes riskier when a skill carries privileged or externally connected behavior.
The skill’s stated purpose is recommending prompts, but the documentation expands behavior into setup-time downloading of remote reference data. This creates hidden operational side effects and broadens the attack surface from static recommendation into remote content ingestion, which can be abused if upstream data is changed or the user did not consent to network activity.
The skill directs the agent to perform automatic network freshness checks and silent updates without a user-facing warning at the time of use. Hidden network actions undermine informed consent and can expose user sessions or host environments to external dependencies unexpectedly.
The generate script invokes npx tsx, which can resolve and execute a package version outside the repository’s lockfile-controlled dependency flow if the environment lacks a matching local install or allows remote resolution. In a skill ecosystem where install/setup scripts may be run automatically, this increases supply-chain risk because an unexpected or compromised package version could be fetched and executed.
The heading labels Step 5 as 'Content Illustration Mode Only', but the very next lines say to proceed whenever any user selects a prompt and that the step applies to all users. That is an explicit contradiction in the documentation about when remix behavior should occur.
This manifest description says the skill 'works with OpenClaw, Claude Code, Cursor and more,' but does not specify how or when the skill should be invoked within those environments. For a manifest file, this broad phrasing can create ambiguity about trigger scope and activation context.
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"author": "YouMind-OpenLab",
"license": "MIT",
"devDependencies": {
"@types/node": "^20.10.0",
"tsx": "^4.7.0",
"typescript": "^5.3.0"
},
Dependencies lack version pinning, allowing potential malicious package updates. Consider pinning versions.
"license": "MIT",
"devDependencies": {
"@types/node": "^20.10.0",
"tsx": "^4.7.0",
"typescript": "^5.3.0"
},
"dependencies": {
No suspicious patterns detected.