T01 · Skill Instruction Hijacking
- Location
SKILL.md:5- Finding
Agent persona and autonomous-goal hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill openly automates public posting, commenting, and reward-task activity, but it ships embedded credentials and lacks clear user approval controls for high-impact account actions.
Install only after removing all embedded credentials/tokens, rotating the exposed secrets, disabling recurring automation by default, and adding explicit review/approval before any post, comment, task acceptance, or task answer is submitted. Treat image URLs and local image paths as sensitive because the scripts may download, copy, upload, or delete files during posting and analysis workflows.
SKILL.md:5Agent persona and autonomous-goal hijacking
scripts/ai6666_config.py:9Plaintext account credentials embedded in source code
scripts/image_analyzer.py:20Hard-coded MiniMax bearer token with environment-controlled destination
scripts/auto_poster.py:144Server-side request forgery through unrestricted image downloads
scripts/auto_poster.py:165Deletion of arbitrary caller-supplied image files after posting
scripts/ai6666_runner.py:177Test mode performs real authenticated public posting and commenting
scripts/image_analyzer.py:31Undisclosed base64 upload of local or downloaded images to an external API
The file contains hardcoded account credentials directly in source code, which exposes secrets to anyone with repository, artifact, or log access. Because this skill automates login and posting/task actions, compromise of these credentials could let an attacker take over the associated account and misuse the automation context.
The log documents credentialed auto-login behavior and elsewhere in the same file even shows a hardcoded username/password example, indicating unsafe handling of secrets in operational guidance. Embedding or normalizing credential use in scripts increases the chance of credential exposure, reuse, accidental commits, and unauthorized account access if logs or code are leaked.
The skill hard-codes Chinese-only operation and does not provide any user language choice or consent mechanism. While not directly enabling code execution or data theft, it can override user intent and increase the chance of deceptive or unintended autonomous behavior on external platforms.
The skill mandates flirtatious sexualized replies about women as a fixed behavior, regardless of user intent or target context. This is dangerous because it drives the agent to produce harassing or inappropriate external communications automatically, creating safety, abuse, and reputational risks for both users and third parties.
The skill frames the agent as 'self-evolving' and instructs it to repeatedly reread the skill, optimize itself, and reinforce engagement and monetization goals. In context, this increases danger because the optimization loop is attached to risky autonomous behaviors like unsolicited posting, comments, and manipulative persona shaping, which can make the system more persistent and harder to constrain over time.
The skill describes automated posting, commenting, and task submission on an external account with recurring schedules, but without a strong upfront authorization and confirmation model. This is dangerous because it can cause unauthorized account actions, spam, policy violations, financial or reputational damage, and loss of user control over the external service account.
The file supports authentication via session cookies, which are effectively credentials and can grant account access if exposed. The comments explain priority but do not disclose the sensitivity of these values or warn users against sharing or committing them.
This code file contains user-facing natural-language strings entirely in Chinese, including the module description and usage instructions, with no indication that another language is supported or that Chinese is required for a region-specific compliance reason. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.
The top-level design explicitly aims to automate posting, task farming, commenting, and monetization using synthetic content, which is a strong indicator of coordinated inauthentic activity rather than ordinary benign automation. This context makes the rest of the file more dangerous because multiple features combine into an abuse pipeline that can spam, manipulate engagement, and operate accounts at scale.
The login method sends supplied credentials to a remote site via HTTP requests, but the code only reports success or failure after the fact. There is no confirmation prompt, warning comment, or other user disclosure near this sensitive network transmission despite handling account credentials directly.
This function publishes arbitrary text and local image files to a remote account with no confirmation, dry-run mode, or visibility control, making accidental data disclosure and unintended public posting likely. In the context of an automation skill designed for repeated posting, a caller can unknowingly leak sensitive text, metadata, or private images under the user's identity.
The loop automatically accepts tasks on behalf of the user repeatedly without interactive confirmation, which can commit the account to unwanted obligations, spammy workflows, or platform-rule violations. Because this is paired with filtering and polling logic, it can scale account-affecting actions quickly and make accidental misuse harder to notice or stop.
This method posts generated or supplied answers directly to the platform under the user's authenticated session without warning or review. Combined with the answer-generation logic elsewhere in the file, it enables large-scale synthetic submissions that can misrepresent user intent, violate site policies, and publish harmful or inappropriate content under the user's account.
The comment function posts content to third-party pages using the user's authenticated session with no confirmation, provenance checks, or moderation controls. In this skill's broader context of engagement automation, this materially increases the risk of spam, impersonation, harassment, or unintended publication at scale.
The documentation for get_posts_for_commenting describes a workflow involving MiniMax MCP image understanding and comment generation, implying this method supports or implements that pipeline. In reality, the function only enumerates posts, optionally fetches details, and returns metadata including image URLs; it does not call any MCP tool or generate comments, so the inline documentation overstates the implemented behavior.
The file’s human-readable instructions and user-facing output are entirely in Chinese and direct strict adherence to that workflow, with no indication that another language can be used. Per the policy, forcing a specific language without user opt-in is a natural-language policy concern unless the locale restriction is explicitly justified.
The script emits raw post content, post URLs, and image URLs directly to stdout for downstream agent/MCP handling, which can expose third-party user data to logs, terminals, schedulers, or external tooling without minimization or consent controls. In this skill’s context, the printed data is explicitly intended to be consumed by another agent and image-analysis tool, increasing the chance of unnecessary data propagation beyond the original platform.
The script can post comments immediately when invoked with --comment, performing a public, user-affecting write action without any confirmation, dry-run mode, or clear interactive warning. In an agent-driven workflow, this increases the risk of unintended, spammy, or policy-violating comments being posted on the user's behalf if upstream inputs are wrong or manipulated.
The script performs autonomous posting and commenting actions against an external platform without per-action confirmation, dry-run mode, or user-visible consent controls. In the context of an agent skill that can submit answers, post content, and comment at scale, this increases the risk of spam, unintended account actions, policy violations, and reputational or account-level harm if the logic misfires or is repurposed.
The file’s top-level natural-language description is entirely in Chinese and presents the skill behavior as fixed, with no indication that users can choose another language or locale. Under the stated policy, forcing a specific language without opt-in is a natural-language policy violation.
The module docstring frames the script as a narrow posting helper that 'only' accepts content plus an image path and performs posting requests. However, the implementation includes multiple image-download functions, accepts arbitrary URLs, and exposes a separate --download mode, which materially extends the script's behavior beyond that stated description.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
if not HAS_REQUESTS:
return None
try:
resp = requests.get("https://api.thecatapi.com/v1/images/search?size=full", timeout=15)
if resp.status_code == 200:
data = resp.json()
if data and len(data) > 0:
The code trusts a URL returned by a third-party API and immediately performs a second server-side request to that URL without validating scheme, host, IP range, or content type. This is a classic SSRF/open-fetch pattern that can be abused if the upstream API is compromised or returns attacker-controlled URLs, causing the host running the script to make unintended network requests.
if data and len(data) > 0:
img_url = data[0].get('url', '')
if img_url:
img_resp = requests.get(img_url, timeout=15)
if img_resp.status_code == 200 and len(img_resp.content) > 5000:
img_path = os.path.join(self.img_dir, f'cat_{int(time.time())}.jpg')
with open(img_path, 'wb') as f:
The script takes the dog image URL from a remote API response and fetches it directly, creating a tainted network-input-to-network-output flow. If that API or its response path is attacker-influenced, the script can be turned into a request gadget for SSRF, internal network probing, or retrieval of unexpected content.
if data.get('status') == 'success':
img_url = data.get('message', '')
if img_url:
img_resp = requests.get(img_url, timeout=15)
if img_resp.status_code == 200 and len(img_resp.content) > 5000:
img_path = os.path.join(self.img_dir, f'dog_{int(time.time())}.jpg')
with open(img_path, 'wb') as f:
This code performs an externally visible action by calling publish_content with supplied text and images, which can affect user accounts or reputation. Although it prints status information, there is no warning or confirmation before publication, and the surrounding text does not clearly disclose risks of automatic posting beyond basic usage.
No suspicious patterns detected.