Back to skill

Security audit

agent-error-logger-new

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a disclosed local error logger, but it persists raw task/error text for later agent use and includes unsafe GitHub publishing guidance that could expose data or credentials.

Review this before installing if your agent handles sensitive projects. Do not record secrets, credentials, private customer data, or untrusted third-party text in the error logs without redaction. Avoid the PAT-in-URL GitHub command, and do not run create-repo.sh unless you have reviewed the directory contents and are comfortable publishing them publicly.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
  • 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 (2)

T02 · Agent Memory Poisoning

Error
Location
scripts/record_error.py:42
Finding

Persistent Agent Memory Poisoning Through Unsanitized Error Records

Content
View full analysis
详细错误日志,按时间倒序记录。 --- {header}{record} """ log_file.write_text(content) ``` `SKILL.md:124-131`: ```markdown 在以下场景自动检索错误日志: | 场景 | 检查内容 | |------|----------| | 发布内容前 | 检查 #文件校验 #发布前检查 | | 网络请求前 | 检查 #网络超时 #降级方案 | | 浏览器操作前 | 检查 #浏览器不可用 | | 复杂任务前 | 检查相似任务的错误历史 | ``` ### Technical Analysis The `task`, `error`, `cause`, `fix`, and `tags` command-line values are interpolated directly into a persistent Markdown document. The implementation does not escape Markdown structure, identify the values as untrusted data, validate instruction-like content, or otherwise separate stored facts from executable Agent guidance. The Skill subsequently instructs the Agent to retrieve these records automatically before multiple classes of future tasks. Consequently, text supplied while recording an error can cross a session boundary and later be inserted into an Agent's working context. A malicious value could include additional Markdown sections or ...[truncated 1847 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
PUSH_TO_GITHUB.md:126
Finding

Personal Access Token Exposure Through Credential-Bearing Git URL

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (19)

Credential Access

High
Category
Privilege Escalation
Confidence
96% confidence
Finding

The content explicitly recommends using a Personal Access Token for repository push operations and then shows it embedded in a URL, which can directly lead to credential disclosure. If leaked, the token may grant repository write access or broader GitHub API permissions depending on scopes, enabling code tampering or account compromise.

Content

Scanner excerpt · PUSH_TO_GITHUB.md (reported line 122)May include surrounding context.

如果遇到问题,可以:

  1. 检查 GitHub 仓库权限
  2. 确认网络连接
  3. 尝试使用 Personal Access Token 代替密码
bash
# 使用 PAT 推送

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill advertises error-log management capabilities that are not substantiated in the provided file, including recording, automatic logging, analysis, and corrective suggestion generation. In security-sensitive workflows, overstated capabilities can create a false sense of coverage and cause users to trust that important operational mistakes are being captured or analyzed when they are not.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The skill advertises error-log management capabilities that are not substantiated in the provided file, including recording, automatic logging, analysis, and corrective suggestion generation. In security-sensitive workflows, overstated capabilities can create a false sense of coverage and cause users to trust that important operational mistakes are being captured or analyzed when they are not.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The skill advertises error-log management capabilities that are not substantiated in the provided file, including recording, automatic logging, analysis, and corrective suggestion generation. In security-sensitive workflows, overstated capabilities can create a false sense of coverage and cause users to trust that important operational mistakes are being captured or analyzed when they are not.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script requires authenticated GitHub CLI access and uses that access to create a public repository and push local contents, despite the skill being described as an agent error logger. In this context, requesting account-scoped GitHub access is unjustified and expands risk substantially, since an agent or user could expose local files, internal tooling, or error logs to a public remote under their account.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script creates a new GitHub repository from the current directory and immediately pushes its contents publicly, which is unrelated to an error-logging tool's stated functionality. This mismatch is dangerous because users or agents may run it expecting local logging support, but it instead publishes code and any checked-in data to GitHub, creating a risk of unintended disclosure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The document instructs users to embed a GitHub Personal Access Token directly in the git push URL. This exposes the token through shell history, process lists, terminal logs, screenshots, and potentially persisted Git remote configuration, creating a realistic credential leakage path.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill documentation is written entirely in Chinese and presents all usage, examples, and outputs in that language without offering an alternative language or stating that the skill is intended only for a Chinese-language context. This creates a natural-language locale policy issue because the skill effectively imposes a language choice on users without opt-in.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding

The skill describes reading and writing persistent files under workspace/memory but declares no explicit tool scope or permissions. That creates an authorization and transparency gap: an agent may persist data without users or the runtime clearly understanding that filesystem access is required, increasing the chance of unintended data exposure or policy bypass.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad terms like '记录错误' and '查询错误' that can easily appear in ordinary conversation, increasing the likelihood of accidental invocation. Because the skill is designed to persist task and error details, unintended triggering could capture sensitive operational context into long-lived files without deliberate user intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill stores task failures, root-cause analysis, and remediation details in persistent files but does not warn users that these records may contain sensitive information such as internal paths, credentials in error strings, business context, or personal data. Persistent logging without disclosure or minimization materially raises confidentiality and privacy risk, especially when historical logs are later searchable.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents all operational instructions and user-facing examples in Chinese, including the title and command guidance, but does not mention that the skill is Chinese-only or provide any user opt-in for language preference. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale restriction is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script’s user-facing strings and comments are written in Chinese throughout, including status, error, and next-step messages. For a general-purpose repository creation script, this imposes a specific language on users without opt-in or justification, which matches the locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This Python file contains user-facing natural-language strings entirely in Chinese, including the module description, CLI argument descriptions, and status messages. That creates an implicit language requirement for users without any opt-in or documented locale constraint, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code includes its docstrings, CLI description, argument help, and runtime messages entirely in Chinese, which imposes a specific language on users. Under the stated policy, forcing a language without user opt-in or clear justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The description and trigger phrases are entirely in Chinese and the examples assume Chinese-language interaction, but the file does not explicitly state that the skill is Chinese-only or offer user language selection. This can violate language/locale policy when a skill implicitly forces one language without opt-in or justification.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation says '手动生成(未来功能)', which indicates the capability is not yet implemented, but immediately provides a runnable command python monthly_report.py --month YYYY-MM as if the feature exists. This is an intent/documentation contradiction within the skill documentation itself and could mislead users about available functionality.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The manifest description is written entirely in Chinese, which can indicate a language-specific constraint for the skill without any opt-in or explanation. The policy requires either offering language choice or clearly documenting why a locale restriction is necessary.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file is entirely presented in Chinese, and there is no indication that users can opt into another language or that the skill is intentionally limited to a Chinese-language audience. The policy requires flagging forced language or locale constraints when no user choice or justification is provided.

Content

No source excerpt is available for this finding.