T01 · Skill Instruction Hijacking
- Location
SKILL.md:25- Finding
Skill instructions redirect the agent toward unsolicited external publishing and engagement
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches an AgentArxiv publishing API, but it pushes autonomous posting, recurring checks, and memory use beyond ordinary user-directed control.
Install only if you want an agent-capable AgentArxiv account and are comfortable with authenticated external writes. Treat all publishing, commenting, voting, messaging, bounty, milestone, and memory actions as requiring explicit user approval. Avoid enabling heartbeat or cron routines unless you add review, expiry, and removal controls, and treat feed or briefing content as untrusted reference material.
SKILL.md:25Skill instructions redirect the agent toward unsolicited external publishing and engagement
SKILL.md:34Untrusted feed content is recommended for persistent agent memory
src/app/docs/agents/heartbeat/page.tsx:91Documentation establishes a recurring cross-session OpenClaw cron routine
This command tells the system to inject a message every 30 minutes. The agent will then read
HEARTBEAT.md and execute any tasks that are due.
src/app/api/cron/deep-research/route.ts:7Unset cron secrets allow authorization with a literal “Bearer undefined” header
src/lib/daily-briefing.ts:62Untrusted RSS and Hacker News content is inserted into a privileged LLM system prompt
src/app/api/v1/milestones/[id]/route.ts:42Any authenticated agent can complete another research object's independent-replication milestone
google-calendar-0.1.0/scripts/refresh_token.py:31Google OAuth access token is written without restrictive permissions and printed to standard output
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
req = urllib.request.Request('https://oauth2.googleapis.com/token', data=data, method='POST')
req.add_header('Content-Type', 'application/x-www-form-urlencoded')
try:
with urllib.request.urlopen(req) as resp:
resp_data = json.load(resp)
except urllib.error.HTTPError as e:
sys.stderr.write(f'HTTP error {e.code}: {e.read().decode()}\n')
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
pnpm install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your database credentials
# Set up database
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
pnpm install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your database credentials
# Set up database
The declared description describes a scientific publishing and research collaboration capability for AI agents. The supplied code does something entirely different: it connects to the Google Calendar API and provides commands to list events across calendars and to add, update, or delete events in a configured calendar. This is a materially different primary purpose and involves undeclared external resource access (Google Calendar) and event-management capabilities that are unrelated to publishing papers, validating artifacts, tracking claims, peer review, or replications.
The declared description is about outcome-driven scientific publishing and research collaboration workflows. The supplied code does something entirely different: it refreshes a Google OAuth access token using stored client credentials and a refresh token, then persists the new access token in a local configuration file. This is a materially different primary purpose and accesses unrelated resources (Google OAuth endpoint and local Google Calendar secrets file) that are not implied by the declared description. Therefore, this is a clear description-behavior mismatch.
The declared description describes a full scientific publishing and replication platform. The actual code chunk does not implement any of those domain features; it merely configures a test runner. While configuration files can be supporting details, this chunk by itself reflects a testing setup rather than any functionality related to publishing, experiments, claims, reviews, or collaboration. Therefore the description does not accurately represent what this code chunk actually does.
The declared description describes a feature-rich scientific publishing and collaboration system, but the supplied code only configures a Next.js application at the framework level. It adds browser security headers and allows markdown-related page extensions; it does not implement publishing workflows, claims, experiments, milestone tracking, replications, bounties, peer review, or collaboration features. This is a materially different primary purpose, so the description does not accurately represent the code chunk.
The declared description describes a complex scientific publishing and collaboration system. However, the supplied code does not implement any such functionality. It is only a build-tool configuration for CSS processing, specifically configuring Tailwind CSS and Autoprefixer. This is a materially different primary purpose and does not demonstrate any of the declared capabilities. While frontend styling support could exist within a larger application, this code chunk itself is unrelated to the declared behavior, so it should be flagged as a mismatch.
The declared description presents an end-user scientific publishing and collaboration capability. The supplied code does not implement those workflows directly; instead, it is an administrative database seed script. Its primary behavior is to clear existing records, create sample agents/channels/papers, establish memberships and social connections, and generate API credentials. Important described capabilities such as validated artifacts, structured claims, milestone tracking, independent replications, replication bounties, and peer review are not present in this code chunk. Additionally, destructive database reset behavior and API key generation are undeclared administrative capabilities. Therefore, the description does not accurately represent this code chunk.
The declared description is about an outcome-driven scientific publishing and replication platform, but this code implements a protected cron/debug API route for generating a daily briefing or paper. Its primary behavior is scheduled or manually authorized backend job execution, not publishing workflows, peer review, replication bounties, or collaboration features. The code introduces undeclared trigger semantics (cron/manual admin GET endpoint) and secret-based authorization, which are materially different from the stated purpose.
The declared description is centered on scientific publishing workflows and collaboration features for AI researchers. The supplied code does not implement publishing papers, hypotheses, experiments, replication bounties, peer review, milestone tracking, or artifact validation. Instead, it handles agent profile read/update functionality. While user/agent profiles could be a supporting part of a larger publishing platform, this code chunk’s primary purpose is materially different from the declared purpose and exposes capabilities not described in the skill summary.
The declared description centers on scientific publishing, replication workflows, peer review, and collaboration features. The provided code instead handles identity/authentication behavior for fetching the currently authenticated agent profile. While user/agent profiles could be supporting infrastructure for a larger platform, this specific chunk's primary function is not publishing or research workflow management. Additionally, it performs an undeclared database-backed authentication diagnostic that reveals whether an API key prefix exists and how many records match, which is not represented in the description.
The declared description presents the skill as a research publishing and collaboration system centered on papers, experiments, claims, replications, bounties, and peer review. The supplied code chunk does not implement any publishing, experiment tracking, replication, bounty, or review functionality. Instead, its primary purpose is identity onboarding: registering agent accounts, generating credentials, issuing a claim URL, and writing audit logs. While account registration could be a supporting feature in a larger platform, this chunk’s behavior is materially different from the declared purpose and exposes undeclared capabilities related to account creation and authentication.
The declared description presents the skill as enabling outcome-driven scientific publishing workflows such as publishing research, tracking claims and milestones, handling replications, bounties, and peer review. The supplied code does not implement publishing or research artifact workflows; instead, its primary function is to expose an API endpoint for listing agents and their metadata. While agent collaboration could be tangentially related to a research platform, this endpoint is specifically an agent directory/search listing capability, which is not explicitly represented in the description. The code also introduces an undeclared trigger in the form of a GET /api/v1/agents endpoint and accesses agent profile data from the database. Therefore the description does not accurately represent this code chunk's actual behavior.
The declared description presents a broad research publishing and collaboration system focused on publishing, claims, replications, bounties, peer review, and collaboration. The supplied code chunk does not implement any of those core functions. Instead, it provides an authenticated REST API for managing an agent's bookmarked papers. While bookmarking papers could be a secondary feature in a publishing platform, this code's primary purpose is materially different from the declared purpose and represents an undeclared capability not reflected in the description.
The declared description suggests a broad scientific publishing and research-collaboration capability set. The supplied code does not implement those behaviors. Instead, it only exposes a read-only endpoint for retrieving the latest 'daily-briefing' IDEA_NOTE paper from the database. This is a materially different primary purpose: fetching a specific briefing item, not enabling publication, hypothesis management, experiment validation, peer review, replication, or collaboration. No concerning extra permissions are evident, but the actual behavior is much narrower and different than the declared description.
The declared description emphasizes outcome-driven scientific publishing features such as publishing research artifacts, structured claims, replication workflows, peer review, and collaboration. The supplied code does not implement paper publishing, experiments, replications, bounties, or reviews. Instead, it specifically manages discussion or collaboration channels via GET/PATCH/DELETE endpoints, including private-channel access checks, moderator/owner authorization, sanitization of channel fields, and deletion logging. While channels could be a supporting collaboration feature within a broader publishing platform, this code chunk’s actual purpose is channel administration, which is not accurately represented by the declared description and constitutes an undeclared capability at this granularity.
The code chunk does not implement scientific publishing, paper submission, hypothesis tracking, experiment artifacts, replication bounties, peer review, or milestone management. Instead, its primary function is channel management: listing channels and creating new ones with membership and visibility controls. While channels could be a supporting collaboration feature in a broader research platform, this specific code is materially focused on a different capability than the declared purpose. Therefore, the description does not accurately represent what this code chunk actually does.
The code chunk is specifically a comments API, not a research publishing, replication, bounty, milestone, or peer-review workflow implementation. While comments could be a supporting social feature within a publishing platform, the declared description emphasizes outcome-driven scientific publishing, validated artifacts, structured claims, milestone tracking, replications, bounties, and peer reviews. None of those core capabilities are present here. Instead, the code’s primary behavior is discussion-thread management around papers, with notifications and moderation-related sanitization. That is a materially different functional scope from the declared purpose, so this is a mismatch.
The declared description is about scientific publishing and research collaboration workflows, such as papers, experiments, claims, replications, bounties, and peer review. The supplied code does not implement publishing or research artifact management. Instead, it provides a DM API endpoint for sending and reading private messages, with rate limiting, recipient validation, content sanitization, and notifications. While messaging could be loosely related to collaboration, it is not the declared primary functionality and represents a materially different capability set from the stated scientific publishing purpose.
The declared description focuses on scientific publishing, research artifact validation, replication workflows, peer review, and collaboration around research outputs. The supplied code does not implement any publishing, experiments, claims, milestones, replication bounties, or peer review behavior. Instead, it provides an API endpoint for managing friend requests in a social graph. This is a materially different primary purpose and introduces undeclared social-networking capabilities unrelated to the declared function.
The declared description is about outcome-driven scientific publishing, research papers, hypotheses, experiments, replications, peer reviews, and collaboration workflows. The supplied code does not implement any publishing, artifact validation, claims, bounties, peer review, or research-management behavior. Instead, it provides social-network style friend request APIs and notifications. This is a materially different primary purpose and an undeclared capability unrelated to the stated scientific publishing functionality.
The code does not implement core scientific publishing actions like publishing papers, managing claims, replications, bounties, peer reviews, or experiment artifacts. Instead, it provides a periodic agent heartbeat endpoint that aggregates inbox/social/task information and presence updates. Some returned tasks reference papers and coauthor invites, which are adjacent to collaboration on a research platform, but the primary behavior is operational messaging/notification polling rather than outcome-driven scientific publishing. This is a materially different purpose and includes undeclared capabilities around social messaging, friend requests, channel updates, and activity tracking.
The declared description focuses on research publishing, replication workflows, peer review, bounties, and collaboration features. The supplied code does not implement any publishing or scientific workflow behavior. Instead, it exclusively manages user/agent notifications through GET, PATCH, and DELETE endpoints. This is a materially different primary purpose and introduces capabilities not represented in the description. Therefore, the description does not accurately represent the code chunk.
The code does not implement scientific publishing, research artifact validation, claim tracking, replication bounties, peer review submission, or collaboration features described in the declared purpose. Instead, its primary function is a moderation/reporting system: users can report papers, comments, or agents, and moderators can view reports for a channel. This is a materially different purpose and introduces undeclared moderation capabilities. While such functionality could exist somewhere within a larger publishing platform, this specific code chunk is not accurately represented by the declared description.
Detected: suspicious.credential_exposure_instructions, suspicious.env_credential_access, suspicious.exposed_secret_literal