Back to skill

Security audit

Fireseed Auto Novel Publish

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent with its FireSeed novel-publishing purpose, but it gives the agent broad automatic publishing and credential-handling authority with weak user control.

Install only if you intend to let an agent publish to FireSeed on your behalf. Prefer a limited token in an Authorization header, avoid sharing raw passwords in chat, do not use URL token parameters, and review prompts carefully before allowing account creation, task submission, or public chapter publication.

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

Warning
Location
SKILL.md:603
Finding

Permanent Bearer Tokens May Be Transmitted in URL Query Strings

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 603–614
Vulnerability Type: Bearer-token exposure through unsafe authentication transport
Risk Level: Medium

Vulnerable Code Snippet

markdown
## 🔑 认证方式

支持三种 Token 传递方式(任选其一):

1. **HTTP 请求头**:`Authorization: Bearer {token}`
2. **请求体字段**:`"token": "YOUR_TOKEN"`
3. **URL 参数**:`?token=YOUR_TOKEN`

| Token 类型 | 有效期 | 说明 |
|-----------|--------|------|
| JWT Token | 30 天 | `POST /api/auth/token` 获取 |
| API Token | **永久** | `POST /api/ai/token` 获取,可在 settings 管理 |

Technical Analysis

The Skill explicitly permits an authentication token to be supplied through a URL query parameter. URLs are commonly retained or propagated by HTTP access logs, reverse proxies, application telemetry, monitoring products, browser history, copied links, support diagnostics, and error reports. Depending on referrer policy and navigation behavior, a credential-bearing URL may also be disclosed through the Referer header.

A bearer token grants authority based solely on possession. Consequently, any party that obtains a logged or propagated query string may replay its token without knowing the account password. The risk is increased by the documented availability of permanent API tokens, because a leaked permanent token remains useful until manually revoked.

Passing a token in a request body is also less robust than using the standard authorization header because bodies can be captured by application debugging and request logging. The Authorization header over HTTPS should be the only documented transport.

Attack Path

  1. An agent follows the Skill and calls a FireSeed API endpoint using ?token=PERMANENT_API_TOKEN.
  2. The complete request URL is recorded by a server, reverse proxy, monitoring service, browser history, diagnostic system, or other intermediary.
  3. An attacker or unauthorized operator obtains access to the recorded URL or receives it through accidental sharing or referrer propa ...[truncated 928 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove URL query-string authentication from the Skill documentation and reject token query parameters on the server.
  2. Remove request-body token authentication unless a strict compatibility requirement exists.
  3. Require the standard Authorization: Bearer <token> header over HTTPS for all authenticated API calls.
  4. Configure application servers, proxies, tracing systems, and monitoring products to redact authorization data and any legacy token parameters.
  5. Replace permanent tokens with short-lived, narrowly scoped credentials where possible.
  6. Provide explicit token revocation and rotation procedures and automatically revoke credentials suspected of exposure.
  7. Avoid placing credentials in generated output, error messages, command histories, analytics, or diagnostic reports.
  8. Review historical logs for query-string tokens, securely purge exposed values where feasible, and rotate any credentials discovered.
  9. Apply least-privilege scopes so publishing tokens cannot perform unrelated account-administration operations.
  10. Add automated tests that reject authenticated requests containing credentials in URLs.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill instructs fully automatic execution without confirmation, yet it performs high-impact external actions such as registration, login, token handling, novel creation, and chapter publication. This removes informed user consent and creates a strong risk of unauthorized or unintended actions against a third-party service using the user's account or credentials.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill proposes asking for username/password and then automatically registering or logging in, but does not define safe credential handling or a clear warning to the user. Collecting raw credentials inside an agent workflow materially increases the risk of credential exposure, reuse harm, accidental logging, and user confusion about where secrets are being sent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The entire skill definition, trigger phrases, prompts, and required output conventions are written only in Chinese, with no indication that users may opt into another language. That creates a natural-language locale constraint that is not presented as optional or justified as region-specific.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger phrase '写一本关于《X》的小说' is broad enough to match ordinary creative-writing requests that do not express intent to publish or interact with FireSeed. In this skill, a broad match is especially risky because matching leads to automated external actions, potentially causing unintended account use, content creation, or publication on a third-party platform.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger section explicitly states the skill must run fully automatically and must not ask whether to continue. However, the later decision-node section instructs the agent to pause after every 3 chapters and at major plot turning points to wait for user confirmation before continuing, which directly contradicts the earlier instruction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

Allowing tokens to be passed via URL parameters is dangerous because URLs are commonly logged by clients, proxies, servers, analytics tools, browser history, and referrers. Permitting tokens in request bodies also broadens the chance of accidental exposure through debug logs; the safest documented mechanism is an Authorization header only.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The important-rules section says the process should be fully automatic and not interrupt the user except as stated, but the documented workflow includes mandatory pauses for confirmation and direction changes. This creates an intent-level contradiction in the skill's own operating instructions about whether execution is autonomous or interactive.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.