T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:97- Finding
Periodic Retrieval and Execution of Mutable Remote Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This food-ordering skill is coherent overall, but it asks agents to install and periodically execute unpinned remote instructions while also handling orders, saved payment methods, addresses, and API credentials.
Review this skill carefully before installing. It can access HungryPanda account data, addresses, order history, delivery tracking, and saved-card payment flows. Do not enable the recurring heartbeat or remote rule-file execution unless the publisher provides pinned, reviewed, and verifiable files. Store the API key in a proper secret store or at least a 0600-permission file, and require explicit user approval before every paid order or payment confirmation unless you intentionally opt into a spending cap.
SKILL.md:97Periodic Retrieval and Execution of Mutable Remote Instructions
SKILL.md:17Unpinned Remote Skill and Rule Files Overwrite Local Agent Instructions
SKILL.md:74Bearer API Credential Stored in Plaintext Without Required File Permissions
The skill recommends storing the API key in a plaintext JSON file under the user's home directory. Plaintext credential storage increases exposure to local compromise, accidental disclosure, backup leakage, and misuse by other tools or processes running under the same account.
⚠️ 立即保存你的 api_key! 所有后续请求都需要它。
推荐: 将凭证保存到 ~/.config/hungrypanda/credentials.json:
{
The skill provides detailed order-creation and payment-confirmation flows without an explicit safety gate requiring user confirmation that charges may be incurred. In an agent context, this increases the risk of unauthorized purchases or accidental payment execution, especially because the skill also supports saved payment methods and streamlined confirmation flows.
The skill description and examples are entirely in Chinese, and the registration/profile examples set locale to zh-CN by default. The file does not offer an opt-in language choice or explain that the skill is limited to a Chinese-speaking or region-specific context, which may violate the language/locale policy.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
本地安装:
mkdir -p ~/.hungrypanda/skills/hungrypandabook
curl -s https://open.hungrypanda.vip/skill.md > ~/.hungrypanda/skills/hungrypandabook/SKILL.md
curl -s https://open.hungrypanda.vip/heartbeat.md > ~/.hungrypanda/skills/hungrypandabook/HEARTBEAT.md
curl -s https://open.hungrypanda.vip/rules.md > ~/.hungrypanda/skills/hungrypandabook/RULES.md
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
本地安装:
mkdir -p ~/.hungrypanda/skills/hungrypandabook
curl -s https://open.hungrypanda.vip/skill.md > ~/.hungrypanda/skills/hungrypandabook/SKILL.md
curl -s https://open.hungrypanda.vip/heartbeat.md > ~/.hungrypanda/skills/hungrypandabook/HEARTBEAT.md
curl -s https://open.hungrypanda.vip/rules.md > ~/.hungrypanda/skills/hungrypandabook/RULES.md
curl -s https://open.hungrypanda.vip/skill.json > ~/.hungrypanda/skills/hungrypandabook/package.json
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
本地安装:
mkdir -p ~/.hungrypanda/skills/hungrypandabook
curl -s https://open.hungrypanda.vip/skill.md > ~/.hungrypanda/skills/hungrypandabook/SKILL.md
curl -s https://open.hungrypanda.vip/heartbeat.md > ~/.hungrypanda/skills/hungrypandabook/HEARTBEAT.md
curl -s https://open.hungrypanda.vip/rules.md > ~/.hungrypanda/skills/hungrypandabook/RULES.md
curl -s https://open.hungrypanda.vip/skill.json > ~/.hungrypanda/skills/hungrypandabook/package.json
The registration payload specifies "locale": "zh-CN" as the default behavior, but the file does not state that this is optional or user-selected. A fixed locale without user choice is a natural-language policy concern under the language/locale rule.
The profile update example instructs setting locale to zh-CN and does not mention user preference or alternatives. Repeating a mandatory-looking locale default reinforces a language policy violation rather than presenting a neutral example.
This markdown file includes a destructive operation (DELETE /agents/me/addresses/ADDR_ID) but provides no user-facing warning or caution around data loss or reversibility. Under the markdown-file criteria for missing user warnings, destructive behaviors that can affect user data should be disclosed.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
如果主人还没有登录过控制台,你可以帮他们发起设置:
curl -X POST https://open.hungrypanda.vip/api/v1/agents/me/setup-owner-access \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phone": "+44-7xxx-xxx-xxx"}'
The documented permission model includes auto_confirm_under, explicitly enabling autonomous transaction approval below a threshold. In a purchasing skill, this can bypass real-time user consent and lead to unauthorized or unintended orders, especially if combined with saved payment methods.
"permissions": {
"max_order_amount": 50.00,
"allowed_payment_methods": ["saved_card"],
"auto_confirm_under": 20.00,
"require_approval_for": ["new_restaurant", "high_value"],
"blocked_restaurants": [],
"delivery_addresses": ["addr_xxx", "addr_yyy"]
The permissions section normalizes the idea that low-value orders may be auto-confirmed without owner approval. That increases the chance of silent financial actions by an agent and weakens the principle of explicit user authorization for purchases.
**权限说明:**
- `max_order_amount` — 单笔订单金额上限(超过则需主人确认)
- `allowed_payment_methods` — 允许使用的支付方式
- `auto_confirm_under` — 低于此金额的订单自动确认,无需主人审批
- `require_approval_for` — 需要主人审批的场景
- `blocked_restaurants` — 屏蔽的餐厅列表
- `delivery_addresses` — 允许使用的配送地址 ID 列表
No suspicious patterns detected.