Back to skill

Security audit

查看学邦数据。用于登录学邦后台并读取首页今日经营数据与待办数据。

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent dashboard-reading purpose, but it defaults to saving the user's EDU.BOSS username and password in a local workspace note file.

Install only after revising the skill to handle credentials session-only by default, or to use a dedicated secret store with explicit opt-in consent, deletion guidance, and clear protection details. Also narrow the triggers to Xuebang/EDU.BOSS-specific requests and align declared tool permissions with any required file access.

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:23
Finding

Plaintext Credential Persistence in a Workspace Markdown File

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 23–30
Vulnerability Type: Plaintext storage of authentication credentials
Risk Level: High

Vulnerable Code Snippet

markdown
## 凭据管理
- 这是一个可发布技能,`SKILL.md` 中不得包含任何真实账号、密码、Cookie、Token 或其他敏感信息。
- 首次使用时,如果本地未保存学邦凭据,先向用户索取:
  - 登录账号
  - 登录密码
- 获取后,将凭据写入本地私有笔记 `workspace/TOOLS.md`。
- 后续执行时,优先从 `workspace/TOOLS.md` 读取凭据;只有在缺失或用户要求更新时才再次询问。
- 如果用户明确要求"不保存",则仅本次使用,任务结束后不在任何文件中落盘。

Technical Analysis

The skill directs the agent to collect a user's EDU.BOSS username and password and persist them in workspace/TOOLS.md. A Markdown workspace file is not a dedicated encrypted credential store and provides no documented encryption, access isolation, retention control, or protection against accidental inclusion in backups or repositories.

Although users may explicitly request that credentials not be saved, persistence is the default behavior. The instruction not to place credentials directly in SKILL.md merely relocates the secret and does not secure it. Any process, agent, extension, or person able to read the workspace may potentially recover the credentials.

The declared allowed-tools list contains only browser, while the instructions require reading and writing workspace/TOOLS.md. This mismatch may limit execution in a correctly sandboxed environment, but it does not eliminate the insecure credential-handling design.

Attack Path

  1. A user invokes the skill to access EDU.BOSS data.
  2. The skill requests the user's login account and password.
  3. Unless the user explicitly opts out, the agent writes both credentials to workspace/TOOLS.md.
  4. A separate agent, extension, local user, backup process, synchronization service, or accidental repository commit obtains the workspace file.
  5. The exposed credentials are extracted from the plaintext document.
  6. An attacker uses them to authenticate to the EDU.BOSS service, subject ...[truncated 787 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the instructions that write usernames or passwords to workspace/TOOLS.md or any other ordinary workspace document.
  2. Make session-only credential handling the default. Keep secrets only in memory for the minimum time needed and discard them when the operation ends.
  3. If persistence is necessary, integrate a dedicated OS keychain or encrypted secret manager with strict access controls, scoped secret identifiers, and audit logging.
  4. Require explicit, informed user consent before storing credentials; never rely on an opt-out model.
  5. Store only the minimum required secret and avoid retaining passwords when a short-lived, revocable token or delegated authentication mechanism is available.
  6. Define credential deletion and rotation procedures, including removal of any credentials previously written to workspace/TOOLS.md.
  7. Prevent secret-bearing files from entering source control, logs, snapshots, backups, or synchronization systems. Use ignore rules and automated secret scanning as defense-in-depth measures, not as substitutes for secure storage.
  8. Ensure the skill's declared tool permissions accurately reflect required functionality while preserving least privilege.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (5)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- 这是一个可发布技能,`SKILL.md` 中不得包含任何真实账号、密码、Cookie、Token 或其他敏感信息。

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill tells the agent to save user credentials locally for later reuse without a strong, up-front privacy/security warning describing the risks of local storage. Because the skill handles live login secrets for a third-party business system, normalizing silent local persistence can mislead users and create long-lived compromise if the workspace is exposed.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill directly instructs storing supplied login credentials in workspace/TOOLS.md for later reuse, creating a durable plaintext secret repository unrelated to the minimum actions needed for this task. In this context, the danger is elevated because the skill accesses a real administrative dashboard, so credential compromise could enable unauthorized access to sensitive operational and customer data.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill explicitly instructs the agent to persist the user's Xuebang login credentials in a local file for future reuse, even though the stated purpose is only to log in and read dashboard data. Persisting reusable secrets unnecessarily increases exposure to credential theft, accidental disclosure, and unauthorized reuse by other skills or users with workspace access.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest-style trigger line includes short phrases like "今日数据", "经营数据", and "校区数据" without enough scope constraints. These are broad terms that could match unrelated conversations and may cause unintended invocation outside the intended 学邦/EDU.BOSS context.

Content

No source excerpt is available for this finding.