Back to skill

Security audit

文档凭证注册工具

Security checks for vulnerabilities and agentic risk

Overview

This skill mostly describes a credential registration and exchange service, but it asks users to run authenticated external API commands and a persistent polling job with insufficient safeguards.

Review this skill before installing. Only run its curl commands after confirming the exact endpoint, payload, and token source; avoid sending sensitive task content; store API keys in protected secret storage; and do not install the cron polling example unless you add secure logging, retention limits, and a clear removal path.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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)

T06 · System Persistence

Warning
Location
SKILL.md:235
Finding

Persistent Authenticated Polling with Unsafe Plaintext Response Logging

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 235-237
Vulnerability Type: Persistent scheduled execution and insecure storage of authenticated API responses
Risk Level: Medium

bash
*/10 * * * * curl -s https://doc-print.example.com/v3/exchange/inbox \
  -H "Authorization: Bearer $DOC_PRINT_API_KEY" >> /var/log/doc-print-inbox.log

Technical Analysis

The Skill recommends creating a cron entry that performs an authenticated request every ten minutes. Once installed, this scheduled operation continues across Agent sessions and system restarts until it is explicitly removed.

Authenticated inbox responses are appended indefinitely to a fixed plaintext log. The example does not establish restrictive file permissions, redact sensitive response fields, rotate the log, define a retention period, or verify that the destination is protected from other local users and log-collection services. Consequently, task or inbox data may remain on disk longer than intended.

The bearer credential is expanded into the curl command line. Depending on the operating system and process-isolation configuration, another local process or user may be able to observe command arguments while the request is running. The use of curl -s also suppresses diagnostic output without enabling explicit failure handling, making unnoticed authentication or network failures more likely.

Attack Path

  1. A user follows the Skill documentation and installs the provided cron entry.
  2. Cron runs the authenticated inbox request every ten minutes using DOC_PRINT_API_KEY.
  3. Each response is appended to /var/log/doc-print-inbox.log without redaction, rotation, or an explicitly restrictive access mode.
  4. The log accumulates potentially sensitive task and inbox information over time.
  5. A local user, backup process, monitoring agent, or log collector with access to the file obtains the retained response data.
  6. Where local proce ...[truncated 894 chars]
Remediation
View remediation

Remediation Suggestions

  1. Do not recommend installing recurring scheduled tasks by default. Require explicit user consent and clearly document how to inspect, disable, and remove the cron entry.
  2. Prefer a restricted user-level service or scheduler configuration rather than a system-wide cron entry.
  3. Avoid placing bearer credentials in command arguments. Load the authorization header from a protected configuration mechanism or credential file that is readable only by the service account.
  4. Create any output directory and file with restrictive permissions before polling, such as a directory accessible only to the owning account and a file mode of 0600.
  5. Do not log complete authenticated responses. Extract only the minimum fields needed for notification and redact task content, personal data, credentials, and other sensitive values.
  6. Configure bounded retention and log rotation. Define maximum file size, retention duration, and secure deletion behavior.
  7. Use explicit request failure handling, including curl --fail-with-body, appropriate connection and total timeouts, and controlled error reporting that does not expose credentials or response bodies.
  8. Document credential revocation and rotation procedures in case the API key or logged response data is exposed.
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 (9)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest markets the skill as a generic 'doc print tool' workflow/template aid, but the body actually instructs the agent to interact with a remote credential-registration and task-exchange service. This mismatch can mislead users and policy layers into authorizing networked actions and credential handling they did not expect, increasing the chance of unintended data transmission.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The description uses broad, generic wording about helping with 'doc print tool' development scenarios without clear activation boundaries. In an agent environment, ambiguous triggers can cause the skill to be invoked for unrelated requests, exposing users to unexpected external calls or credential workflows.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The coverage statement asserts that all description-declared scenarios are fully supported, but the declared scenarios do not actually match the credential-platform behaviors implemented below. This creates deceptive scope signaling, making it easier for the skill to activate in unrelated contexts and perform actions users did not intend.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The fragmented keyword coverage list is overly vague and broad, which increases the chance of accidental or overbroad triggering. In a skill with exec and network-oriented examples, imprecise routing is risky because it can lead to unintended remote operations and handling of sensitive tokens.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The skill instructs users to send identity, handle, description, and service metadata to an external domain via curl. External transmission is expected for this product's function, but it is still security-relevant because the skill metadata disguises the true behavior and users may disclose data to a third-party service without clear informed consent.

Content

Scanner excerpt · SKILL.md (reported line 73)May include surrounding context.

用户希望让自己被其他开发者按能力检索到.

bash
# 注册一张能力卡片(最简写法)
curl -X POST https://doc-print.example.com/v3/agents \
  -H "Content-Type: application/json" \
  -d '{
    "identity": {

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The registration example immediately returns an API key in sample output, but does not place an immediate warning next to that example about secure handling, redaction, and non-disclosure. Users may copy, log, or share the credential inadvertently, leading to account or identity misuse against the external service.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

The PATCH example transmits authenticated updates with a bearer token to an external service. While consistent with the documented service model, it remains dangerous in this skill because exec-enabled examples plus misleading scope descriptions can cause users to perform authenticated remote modifications they did not fully anticipate.

Content

Scanner excerpt · SKILL.md (reported line 203)May include surrounding context.

注册后若服务范围扩展,可一次性更新多个领域:

bash
curl -X PATCH https://doc-print.example.com/v3/agents/my-tool \
  -H "Authorization: Bearer ${PARAM}" \
  -H "Content-Type: application/json" \
  -d '{

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The cron example appends authenticated inbox responses to a log file without warning that the responses may contain sensitive task content, identifiers, or metadata. This can create a persistent local data leak, especially on multi-user systems or when logs are collected by centralized logging tools.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The document is entirely written in Chinese and all examples, labels, and user-facing interactions assume Chinese usage, but it does not state that this is region-specific or offer an opt-in language choice. Under the policy, forcing a specific language without user choice can be a natural-language policy issue.

Content

No source excerpt is available for this finding.