Back to skill

Security audit

Fastmoss Report

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its stated report-generation purpose, but it exposes a plaintext FastMoss password and can automatically deploy and share report links using configured credentials.

Install only after removing the plaintext password, rotating any exposed FastMoss credential, disabling memory storage of rotation dates, and confirming that Vercel deployment and Feishu group sharing happen only with explicit user approval.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:52
Finding

Hardcoded FastMoss Password and Insecure Credential-Rotation Metadata

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 52–56
Vulnerability Type: Hardcoded secret and insecure persistence of credential metadata
Risk Level: High

Vulnerable Code Snippet

markdown
### 2. Login Handling
If login is required:
- Use the `FASTMOSS_ACCOUNT` and `FASTMOSS_PASSWORD` environment variables
- Account format: numeric only, such as 11668461
- Password: aaa060 (changed every five days; the replacement date is recorded in memory)

The snippet is an English rendering of the corresponding instructions in the audited file.

Technical Analysis

The Skill specifies the concrete password aaa060 directly in its documentation, despite also instructing the Agent to retrieve credentials from environment variables. Skill files may be distributed through repositories, package registries, logs, backups, or Agent context, so they are not suitable secret-storage locations.

An attacker who obtains the Skill can extract the password without accessing the protected runtime environment. The documented numeric account format and example may also help identify or guess the corresponding account. Even if the password is rotated every five days, publishing it defeats the protection expected from rotation while it remains valid.

The instruction to record the password replacement date in Agent memory additionally persists security-sensitive credential lifecycle information beyond the report-generation task. The report only requires the current credential at authentication time; persistent rotation metadata is not necessary for its declared functionality. Although the instruction does not explicitly store the password itself in memory, rotation timing can help an attacker determine when a disclosed credential may be active.

Attack Path

  1. An attacker obtains or views the distributed SKILL.md file.
  2. The attacker extracts the plaintext password aaa060, the numeric account-format informa ...[truncated 1317 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove aaa060 and every other real or realistic password from the Skill documentation and repository history.

  2. Require FASTMOSS_PASSWORD to be supplied exclusively through a protected runtime environment or dedicated secret manager.

  3. Do not place passwords in command-line arguments, generated reports, chat messages, logs, examples, or error output.

  4. Revoke or rotate the exposed password immediately. Review FastMoss authentication and usage logs for unauthorized access attempts.

  5. Remove the instruction to record credential replacement dates in Agent memory. Manage rotation through an external secret-management system with access controls and audit logging.

  6. Grant the FastMoss account only the permissions required to read the ranking data needed for report generation.

  7. Use a dedicated automation account rather than a personal or administrative account, where supported.

  8. Add secret scanning to repository and Skill publication workflows to prevent future plaintext credentials from being committed or distributed.

  9. Replace the login instructions with a non-sensitive form such as:

    markdown
    If login is required, read `FASTMOSS_ACCOUNT` and `FASTMOSS_PASSWORD`
    from the protected runtime environment. Never persist, display, or log
    either value.
    
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The trigger phrases include very generic terms like '选品报告', which can be matched during ordinary conversation and may cause the skill to run unintentionally. In this skill, unintended execution is more sensitive because it can initiate authenticated browsing, generate a public report, and send links to external destinations using stored credentials and configured group IDs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill is designed to use stored FastMoss credentials and optionally send generated report links to a Feishu group, but it does not clearly warn the user that these actions may use saved secrets and publish data externally. This increases the risk of silent credential-backed actions and unintended data disclosure, especially since the workflow includes deployment to Vercel and outbound sharing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
74% confidence
Finding

The skill's natural-language interface, trigger phrases, and examples are entirely in Chinese, which implicitly constrains usage to a specific language. There is no opt-in, alternative language support, or justification that this is a Chinese-only or region-specific skill.

Content

No source excerpt is available for this finding.