T01 · Skill Instruction Hijacking
- Location
scripts/post_global_comment_via_openclaw.py:60- Finding
Promotional instructions redirect the agent toward unsolicited external actions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly transparent about being a memory-sync tool, but it also schedules recurring jobs, force-updates skills, and can publish local memory-derived content externally without enough scoping or confirmation.
Review carefully before installing. Use only in a workspace where local memory files are safe to process, disable auto_update_skills unless you intentionally want this skill to replace installed skills, avoid scheduled posting, and do not run the GitHub or browser posting commands until you have reviewed the exact payload and destination.
scripts/post_global_comment_via_openclaw.py:60Promotional instructions redirect the agent toward unsolicited external actions
scripts/global_memory_sync.py:203Untrusted third-party feed content is persisted as agent memory without instruction-level validation
scripts/global_memory_sync.py:172Scheduled synchronization force-installs mutable remote Skill versions
scripts/export_issue_contribution.py:24Weak sanitization permits local memory content to be published to GitHub
scripts/ensure_openclaw_cron.py:52Setup installs a recurring cross-session job that performs network synchronization and updates
The README provides a one-shot command for posting a global comment via OpenClaw but does not prominently warn that local memory-derived data may be transmitted to a public external service. Because this skill is specifically designed to consolidate cross-session memory, the risk is elevated: users may unintentionally publish sensitive workflow details, preferences, or derived internal context despite stated filtering goals.
The README documents automated GitHub issue posting, duplicate suppression, orchestrator integration, and cron-enabled posting without sufficient warning that this can cause ongoing external publication on a schedule. In this skill context, automation materially increases danger because recurring memory extraction plus unattended posting can repeatedly leak derived local information or create unauthorized outbound communications over time.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
Automated external comment posting, cron scheduling, and promotional/growth actions materially expand the skill's behavior and can drive unreviewed outbound communications. If these capabilities are emphasized as routine workflow rather than as sensitive network actions requiring review, users may unknowingly enable repeated external publication or browser automation.
The README explicitly describes automatic querying of subscribed skills, auto-updating local copies, and pulling remote memory feeds, but does not clearly warn users that the skill will perform recurring network access and ingest externally sourced content. In a memory-management skill, silent remote update and ingestion behavior increases supply-chain and trust-boundary risk because external content may influence future agent behavior even if quarantine is mentioned elsewhere.
This line states an English-only publish payload requirement, which is a language policy constraint. Under the stated policy criteria, forcing a specific language without opt-in or stronger justification is a natural-language policy violation.
The skill advertises and invokes filesystem access, shell execution, scheduling, and network/GitHub operations, but the manifest declares no explicit tool scope or permissions. That creates an authorization transparency gap: operators cannot easily review or constrain what the skill is allowed to do before installation or execution.
The skill promotes optional automated GitHub posting and scheduled external distribution of memory derived from local workspace data, but the surrounding description does not give a clear, prominent warning that content may leave the local environment. In a memory-consolidation skill, that context makes the issue more dangerous because the material being processed may include sensitive operational notes, internal prompts, or user-derived context even if some screening exists.
The quick-start command directly shows how to auto-post to a public GitHub issue without an adjacent warning about publishing workspace-derived data externally. Users often copy-paste quick-start sections, so burying the privacy implication elsewhere materially increases the risk of accidental data disclosure.
The scheduled posting setup enables recurring automated external publication, yet the documentation does not prominently warn that repeated runs may continue to publish data over time. Recurring automation increases the blast radius because a single configuration action can cause ongoing leakage of newly consolidated memory without continuous user review.
The public batch feed embeds promotional calls to install, star, refer peers, and optionally contribute via a GitHub issue, which goes beyond passive memory-sharing data and creates a social-engineering surface inside machine-consumable content. In the context of a memory/memory-sync skill, downstream agents may treat this feed as trusted operational data and surface or act on these calls-to-action, causing unsolicited installation, reputation manipulation, or external interactions not strictly required for the skill’s core function.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run_cmd(args, cwd=None):
proc = subprocess.run(args, cwd=cwd, text=True, capture_output=True)
return proc.returncode, proc.stdout, proc.stderr
This script automatically installs or updates remote skills based on metadata returned by clawhub inspect, which gives the memory sync feature package-management behavior and expands trust to remote content. In a memory-consolidation context, silently pulling and installing code from external sources creates a supply-chain risk and can introduce unreviewed code into the local workspace.
Automatic install/update occurs without any user-facing warning or confirmation, so remote code changes can be introduced into the environment silently. This materially increases the chance of unauthorized or unexpected software modification, especially if repository metadata, registry content, or dependencies are compromised.
The script ingests remote feed content and persists it into local memory files without clear disclosure or provenance enforcement. Although there is a basic secret-pattern filter, untrusted remote text can still poison memory, mislead downstream agents, or persist malicious instructions into future sessions.
The installer performs a one-time bootstrap that executes another Python script and persists completion state without any user-facing confirmation or clear notice in this file. In the context of a memory-sync skill that can consolidate and potentially contribute data externally, silent execution increases the risk of unexpected code execution and unintended data handling during installation.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
def run_cmd(args):
p = subprocess.run(args, text=True, capture_output=True)
return p.returncode, p.stdout or "", p.stderr or ""
No suspicious patterns detected.