T03 · Remote Payload Retrieval and Execution
- Location
install.sh:5- Finding
Remote Shell Script Is Executed Without Integrity Verification
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This restaurant customer-service skill is mostly informational, but its installers add unattended daily self-updates from GitHub and can overwrite local skill files, so it needs review before installation.
Install only if you are comfortable with a daily self-updater that pulls future changes from the publisher's GitHub repository. Prefer manual installation from a reviewed, version-pinned archive, remove or skip the cron/scheduled-task updater, and back up any existing daozheji-grill skill directory before installing.
install.sh:5Remote Shell Script Is Executed Without Integrity Verification
install.ps1:4Remote PowerShell Script Is Executed Without Integrity Verification
install.sh:47Unix Installer Establishes Unattended Daily Update Persistence
install.ps1:40Windows Installer Establishes Unattended Daily Scheduled-Task Persistence
install.sh:12Environment-Controlled Unix Path Is Embedded Unsafely in a Persistent Shell Command
install.ps1:10Environment-Controlled Windows Path Is Embedded in a PowerShell Command String
The declared description presents a restaurant customer-service skill focused on answering informational queries. However, the supplied code does not implement any customer-service or question-answering behavior. Instead, it performs system-level installation and persistence tasks: creating directories, cloning a repository, overwriting an existing directory, and adding a cron-based auto-update job. These are materially different capabilities from the declared end-user purpose and include undeclared access to local files, remote code retrieval, and scheduled task configuration. While installation logic can support a skill, this code chunk by itself is not behaviorally aligned with the declared restaurant-info functionality.
The script creates a Windows scheduled task that runs PowerShell and performs recurring git pulls, giving the skill a persistent mechanism to execute future repository changes. In the context of a simple customer-service skill, this capability is disproportionate and increases the risk of unauthorized code delivery if the repository is compromised or later modified.
Using 'curl ... | bash' chains remote content retrieval directly into shell execution, enabling immediate arbitrary command execution if the remote script or distribution path is tampered with. This is especially concerning because the same installer also creates persistence and auto-update behavior, increasing the consequences of compromise.
# 稻哲纪烤羊排 Skill · 一键安装脚本
# ============================================================
# 用法(客户只需运行这一行):
# curl -sSL https://raw.githubusercontent.com/Liubuq-sys/daozheji-grill-skill/main/install.sh | bash
# ============================================================
set -e
The installer unconditionally deletes an existing target directory if it is not a git checkout, without prompting or backing up contents. This can cause destructive loss of user data or overwrite unrelated files if the path already contains custom content.
The trigger list includes generic food terms such as “羊排” and “烧烤”, which are likely to appear in ordinary restaurant or cooking conversations unrelated to this brand. That can cause unintended invocation, misrouting user requests, and broadening the skill’s effective scope beyond the intended business domain.
Without declared permissions the skill's intent is opaque and cannot be validated.
The description says the skill triggers when the user asks about '任何信息' related to the restaurant, which sets a very loose boundary and encourages over-activation. In an agent environment, broad routing conditions can capture ambiguous user requests, leading to incorrect context injection and reduced reliability or privacy handling if unrelated conversations are misrouted.
The trigger table includes extremely broad keywords such as “送”, “价”, “在哪”, and “有什么”, which commonly appear in unrelated conversations. This can cause accidental activation, making the agent answer in the restaurant persona outside intended context and potentially override or interfere with more relevant skills or system behavior.
If the destination skill path already exists, the installer forcibly deletes it with Remove-Item -Recurse -Force and gives no upfront warning or backup behavior. This can cause unintended data loss, especially if the directory contains local modifications or if the path has been repointed unexpectedly.
The installer establishes persistence by creating a daily scheduled task that silently pulls and updates code after installation. For a restaurant information skill, this exceeds the stated function and creates an ongoing code-execution/update channel that could later deliver changed or malicious content without the user's informed consent.
The installer registers a daily scheduled task without any prior warning, prompt, or meaningful disclosure to the user. Silent persistence is dangerous because it alters system behavior and enables ongoing remote code updates in a way users may not notice or understand.
The installer silently establishes a persistent cron job that continues executing after installation, which exceeds the expected behavior of a restaurant information skill. Persistence plus unattended remote updates creates an ongoing trust channel to repository content, so any future repo compromise or unexpected change will run automatically on the user's system.
Modifying the user's crontab grants the skill persistence capabilities unrelated to its stated restaurant-customer-service purpose. In this context, the capability is disproportionate and increases risk because the skill can keep changing itself over time without user review.
The script modifies the user's crontab without prior consent, creating persistence and unattended execution. This is dangerous because it changes the host's scheduled tasks and continuously pulls remote code, a capability not expected for a restaurant information skill.
The cron check is part of establishing session persistence via the user's crontab. Persistence is risky here because the skill is unrelated to system maintenance, and the scheduled task repeatedly executes update logic tied to a remote repository.
# 配置自动更新(追加到 crontab,不重复添加)
UPDATE_CMD="cd $SKILL_PATH && git pull --ff-only origin main 2>/dev/null || git pull --ff-only origin master 2>/dev/null"
if ! crontab -l 2>/dev/null | grep -q "daozheji-grill"; then
(crontab -l 2>/dev/null; echo "7 3 * * * $UPDATE_CMD") | crontab -
echo "自动更新已配置(每天 3:07)"
fi
This line installs a recurring cron entry, creating persistent execution on the user's machine. In the context of a restaurant-info skill, that persistence is unjustified and expands the blast radius of any future repository compromise or unintended update.
# 配置自动更新(追加到 crontab,不重复添加)
UPDATE_CMD="cd $SKILL_PATH && git pull --ff-only origin main 2>/dev/null || git pull --ff-only origin master 2>/dev/null"
if ! crontab -l 2>/dev/null | grep -q "daozheji-grill"; then
(crontab -l 2>/dev/null; echo "7 3 * * * $UPDATE_CMD") | crontab -
echo "自动更新已配置(每天 3:07)"
fi
Line 56 tells the user to invoke the skill using only the Chinese phrase 「稻哲纪烤羊排」. This is a natural-language locale constraint with no opt-in or alternative language option, which can violate language-choice policy.
SQP-3 applies to all file types and covers language or locale policy violations. This markdown file presents all user-facing content only in Chinese, and nowhere indicates that the skill is China/Chinese-specific or that users can opt into another language.
The natural-language content from L05 through L13 is entirely Chinese, and the file does not indicate that the skill is region-specific or that users can choose another language. Under the policy rule for language or locale constraints, this can be considered a language-forcing behavior without explicit opt-in or justification.
The README defines the skill entirely in Chinese and instructs the assistant to adopt a specific Chinese conversational style using terms like "咱家" and "哥/姐". There is no indication that the user can choose another language or opt into this locale/style, which may conflict with language or locale policy requirements.
The final instruction tells the user to trigger the skill by saying a specific Chinese phrase, implying a fixed language activation requirement. There is no indication that alternative languages are supported or that the Chinese-only trigger is a justified locale-specific design.
The script is presented as a simple one-click installer, but it also configures persistent automatic updates. That mismatch undermines informed consent and can mislead users into executing actions they did not expect, which is especially concerning when combined with remote code retrieval and cron persistence.
The documented install method fetches a script directly from the network and executes it, which removes the user's opportunity to inspect the code first. While common, this pattern is unsafe because any compromise of the source, transport endpoint, or referenced branch immediately affects installers.
# 稻哲纪烤羊排 Skill · 一键安装脚本
# ============================================================
# 用法(客户只需运行这一行):
# curl -sSL https://raw.githubusercontent.com/Liubuq-sys/daozheji-grill-skill/main/install.sh | bash
# ============================================================
set -e
The entire skill file presents business information exclusively in Chinese, with no indication that users may choose another language or locale. Under the stated policy, forcing a specific language without user opt-in can constitute a natural-language policy violation.
This markdown file presents all service information in Chinese and does not indicate that the user can select another language or that the content is intentionally limited to a Chinese-language audience. Under the policy rule, forcing a specific language without user opt-in is a natural-language locale policy concern.
No suspicious patterns detected.