T01 · Skill Instruction Hijacking
- Location
SKILL.md:190- Finding
Forced promotional output and Agent response hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill can generate the promised profile report, but it also declares broad private-data access and persistent scheduled root execution that users should review before installing.
Install only if you are comfortable with a skill reading long-term memory, user profile files, session metadata, and prior reports, and with scheduled report generation. Before installing, verify or remove the missing .onload hook, disable root cron scheduling, avoid forwarding full unredacted reports into chat, and review generated reports/logs for secrets or personal information.
SKILL.md:190Forced promotional output and Agent response hijacking
package.json:25Declared automatic root-level scheduled persistence
scripts/analyze-user.py:417Unredacted private memory excerpts are copied into reports, stdout, conversations, and logs
scripts/analyze-user.py:261Unnecessary broad memory-database access through another installed Skill
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
sudo nano /etc/cron.d/openclaw-boss
sudo rm /etc/cron.d/openclaw-boss
**手动触发报告**:
Automatic cron configuration is not justified by the stated purpose of generating user self-analysis reports. Adding root-level persistence to a non-administrative skill creates a durable execution path that could be abused later, increases blast radius, and is especially concerning because the skill already processes sensitive local user data.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
The declared purpose says the skill analyzes conversation history for self-reflection, but the documented behavior goes further by reading workspace files, querying memory data, invoking shell commands, persisting reports, and comparing prior reports. This mismatch prevents informed consent and can cause the agent to access broader personal data than the user expects.
The trigger phrases are broad everyday requests like 'analyze me' or '评价一下我', making accidental invocation likely during normal conversation. In this skill, accidental activation is risky because it can launch data collection and generate a detailed personal profile without a deliberate, informed request.
The skill explicitly instructs the agent to read a generated report and reproduce it verbatim in chat. Because the report is built from conversation history and possibly other local data, this creates a direct plain-text exfiltration path from files and internal analysis into the visible conversation.
The repeated instruction to copy complete tool or file output into the response removes any opportunity for selective redaction and maximizes disclosure of potentially sensitive user data. If prior conversations, memory entries, or saved reports contain secrets or personal information, they can be surfaced directly to the chat transcript.
The workflow formalizes a dangerous sequence: run script, locate saved file, read it, and paste all contents into the reply. This is a textbook data exposure pattern because it operationalizes file-to-chat transfer of potentially sensitive content gathered from broader local context.
Using subprocess.run with shell=True creates a classic tool-parameter abuse surface because command strings can be expanded or injected by the shell. In an agent skill that already accesses user-derived data and other tooling, this significantly raises the severity because compromise could lead to arbitrary command execution in a sensitive environment.
def run_command(cmd: str, timeout: int = 60) -> str:
"""执行 shell 命令并返回输出"""
try:
result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=timeout)
return result.stdout
except Exception as e:
return f"[Error: {e}]"
The report presents scores as strict and truthful while multiple outputs are randomized or fabricated, including penalties, rankings, and some period metrics. This is dangerous because it can mislead users into trusting invented security or performance assessments as factual, causing poor decisions based on false data.
The script executes shell commands to collect data for a profiling/reporting task, which exceeds the minimum capability needed for the stated purpose. Granting command-execution capability to a skill that processes user history increases the risk of abuse, especially if combined with future parameter injection or repurposing by an attacker.
The script prints the full generated profile report to stdout specifically so it can be copied back to the user through tool output. This creates a direct exfiltration path for potentially sensitive memory- and session-derived content, especially in environments where tool output may be logged, forwarded, or visible to components beyond the end user.
The trigger phrases are common conversational requests such as '分析一下我' and '生成用户评价报告', making accidental activation plausible during ordinary chat. Because the skill analyzes conversation history and may generate persistent reports, unintended triggering can expose private context or cause unexpected profiling behavior.
The README states that installation automatically creates cron jobs and starts the Cron service, which expands the skill from simple user profiling into persistent system-management behavior. For a self-reflection/report skill, scheduled execution and service control are unnecessary privilege/scope increases that can surprise users and create persistence without clear consent.
The README advertises automatic creation of cron jobs and starting the Cron service without a strong, prominent warning that installation modifies the system and enables persistent scheduled execution. This weak consent model increases the risk that users install the skill without understanding ongoing background behavior.
The installation section repeats that setup is automatic and '无需手动配置,安装即用', reinforcing persistence behavior without emphasizing that system cron and services are being altered. Repetition of convenience messaging without risk disclosure increases the likelihood of uninformed consent.
The security documentation frames the skill as a local analysis/reporting tool, but it also documents persistent cron installation under /etc/cron.d/ requiring root-level system changes. That mismatch is dangerous because it downplays a persistence mechanism and elevated privilege requirement that materially expands the skill's trust boundary and attack surface.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 限制脚本执行权限
chmod 755 /root/.openclaw/workspace/skills/openclaw-boss/scripts/analyze-user.py
# 限制数据库访问
chmod 644 /root/.openclaw/workspace/db/memory.db
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
chmod 755 /root/.openclaw/workspace/skills/openclaw-boss/scripts/analyze-user.py
chmod 644 /root/.openclaw/workspace/db/memory.db
### 3. 禁用自动 Cron(可选)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# 安装后删除 cron 配置
sudo rm -f /etc/cron.d/openclaw-boss
# 或注释掉定时任务
sudo nano /etc/cron.d/openclaw-boss
Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.
No suspicious patterns detected.