Back to skill

Security audit

Ai Literacy Expert V4.3

Security checks for vulnerabilities and agentic risk

Overview

This is mostly a coherent AI-literacy teaching skill, but its production guidance requires user-input and behavior logging without enough privacy controls and includes one unpinned package-execution command.

Review before installing in a school, training, or enterprise environment. Require telemetry to be opt-in or clearly disclosed, remove raw user input from logs, define retention/deletion and access controls, and replace `npx -y acorn` with a pinned or built-in validation method. The skill does not show malware, credential theft, OS persistence, or destructive behavior in the inspected artifacts.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
references/commercial-production-standards.md:76
Finding

Mandatory Telemetry Collects User Input Without Defined Privacy Controls

Content
View full analysis

Vulnerability Details

File Location: references/commercial-production-standards.md, lines 76–93
Vulnerability Type: Unspecified collection and transmission of user activity data
Risk Level: Medium

Vulnerable Code

javascript
const audit = {
  ts: Date.now(),
  skill: 'ai-literacy-expert-v4.3',
  ability: 'lesson-builder',   // courseware | game | lesson-builder
  phase: 'phase-4-content-gen',
  input: { audience: 'university students', modules: ['C1'], granularity: 'unit' },
  output: { files: 4, totalBytes: 245678 },
  errors: [],
  durationMs: 45321
};
// Asynchronously report to /api/audit; required in production

The subsequent user-behavior logging requirements include recording trigger-word matches and whether users adopt generated deliverables.

Technical Analysis

The production standard requires applications to submit an audit object containing user-selected lesson parameters, activity information, output metadata, errors, and timing information to /api/audit. It does not define:

  • An informed-consent or opt-out mechanism
  • Data minimization requirements for the unrestricted input field
  • Authentication or authorization for the audit endpoint
  • Transport, retention, deletion, or access-control policies
  • Whether data is anonymized or associated with a user account
  • Restrictions preventing raw lesson content or personal data from entering logs

Although telemetry is not inherently malicious, making it mandatory without these safeguards creates an insecure data-collection pattern. Future implementations may serialize additional user input into the audit object, including sensitive teaching material or identifying information.

Attack Path

  1. A developer generates or implements a production lesson-building application using this standard.
  2. A teacher or student enters lesson preferences or other content.
  3. The application places user input and operat ...[truncated 908 chars]
Remediation
View remediation

Remediation Suggestions

  1. Make telemetry optional and disabled by default.
  2. Obtain informed consent before collecting behavioral or lesson-related data.
  3. Remove raw input from telemetry; use predefined, non-identifying aggregate fields.
  4. Define an explicit schema and reject unexpected fields.
  5. Authenticate and authorize /api/audit, enforce HTTPS, and apply request-size and rate limits.
  6. Establish retention, deletion, access-control, and incident-response policies.
  7. Avoid storing student names, contact details, lesson contents, or other personal information.
  8. Document the telemetry purpose, recipients, storage location, and opt-out procedure.
  9. Add automated tests confirming that sensitive fields are redacted before transmission.

T08 · Insecure Dependencies

Warning
Location
references/p5js-courseware-guide.md:343
Finding

Unpinned Package Execution Through npx

Content
View full analysis

Vulnerability Details

File Location: references/p5js-courseware-guide.md, line 343
Vulnerability Type: Unsafe execution of an unpinned registry dependency
Risk Level: Medium

Vulnerable Code

shell
npx -y acorn

The guide recommends this command as an alternative syntax-validation method when the preferred Node-based check is unavailable.

Technical Analysis

The npx command can resolve, download, and execute package code from the configured package registry. The -y option suppresses confirmation, while the absence of an exact version, lockfile, or integrity hash means that the executed artifact may change between runs.

This creates a supply-chain execution channel. If the package, a transitive dependency, a maintainer account, the configured registry, or the dependency-resolution process is compromised, registry-controlled code may execute with the invoking user's local permissions.

The finding does not establish that the legitimate acorn package is malicious. The weakness is the instruction to automatically execute mutable, externally resolved code without pinning or prior review.

Attack Path

  1. An attacker compromises the package source, a dependency, a maintainer account, or a registry-resolution path.
  2. The attacker publishes or serves a malicious package version.
  3. A user follows the audit guide and runs npx -y acorn.
  4. npx resolves and downloads the current package and dependency graph without interactive confirmation.
  5. The downloaded executable code runs with the user's account permissions.
  6. The payload may access files, environment variables, network resources, and other assets available to that account.

Impact Assessment

Successful exploitation may provide arbitrary code execution with the privileges of the user running npx. Depending on the local environment, the affected scope could include:

  • Project source code and generated lesson material ...[truncated 398 chars]
Remediation
View remediation

Remediation Suggestions

  1. Prefer the built-in node --check command because it does not retrieve an external package.
  2. If a parser is required, add an exact reviewed version to the project manifest and commit the lockfile.
  3. Enforce package-integrity verification and use a trusted, controlled registry.
  4. Install dependencies during a reviewed setup phase rather than dynamically during validation.
  5. Run dependency tools in a restricted container or sandbox with no secrets and minimal filesystem access.
  6. Remove the -y option so unexpected installation prompts are visible.
  7. Consider a reviewed parser bundled locally with the project or a browser-native validation procedure that performs no dynamic package retrieval.
  8. Apply dependency scanning and update packages only through a controlled review process.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (21)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill calls for observability logging that includes user behavior, but it provides no privacy disclosure, consent model, retention policy, or data-minimization guidance. In an education context involving students and teachers, undisclosed behavioral logging can expose sensitive usage patterns and potentially regulated personal data, making the risk materially higher.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/p5js-courseware-guide.md (reported line 33)May include surrounding context.

代码引入标准

html
<!-- 主用 cdnjs,备用 jsdelivr(onerror 自动回退,避免单一 CDN 不可达导致白屏) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/2.0.3/p5.min.js"></script>
<script>
  if (typeof p5 === 'undefined') {

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/p5js-courseware-guide.md (reported line 33)May include surrounding context.

代码引入标准

html
<!-- 主用 cdnjs,备用 jsdelivr(onerror 自动回退,避免单一 CDN 不可达导致白屏) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/2.0.3/p5.min.js"></script>
<script>
  if (typeof p5 === 'undefined') {

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The lesson-prep capability is activated by broad phrases such as ‘帮我备课’, ‘生成题目’, and especially output-format-oriented requests like ‘出 word/ppt/excel/pdf’, which can overlap with ordinary educational or documentation requests. This ambiguity can cause the skill to enter a more powerful document-generation workflow than the user intended, increasing the chance of unexpected file generation and downstream actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill advertises one-click ZIP packaging and download of multiple generated files but does not mention any user notice, consent, or preview before local file creation/download behavior occurs. Even if files are generated locally, unexpected bulk downloads can confuse users, facilitate social engineering-style workflows, and create trust and safety issues around silent file creation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill explicitly says it will automatically match capabilities by trigger words, but overlapping educational terms like ‘讲义’, ‘文档’, ‘课件’, and ‘备课包’ do not create a clear activation boundary. In practice, ambiguous routing can invoke the wrong capability and expose users to unintended generation flows, especially when one branch includes packaging and downloads.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The policy requires flagging language or locale constraints that force a specific language without user opt-in. This standards document presents all requirements exclusively in Chinese and does not indicate that the skill is China-specific or that users may choose another language.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The document mandates audit logging of user input, routing triggers, and adoption behavior, including asynchronous reporting to /api/audit, but does not require user notice, consent, minimization, retention limits, or access controls. In an education context, this can lead to undisclosed collection of student/teacher activity and content metadata, creating privacy, compliance, and insider-misuse risk even if direct secrets are not intended to be logged.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The guide explicitly describes sending user selections to a server-side AI API, but it does not require any user-facing notice, consent step, or explanation of what data leaves the browser and how it will be processed. In an education context, seemingly simple inputs such as audience, modules, and lesson scope can still reveal institutional plans or teacher/student-related information, so silent transmission creates a privacy and transparency risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file contains instructional content that implicitly forces a specific language/locale for all users. Under the policy, a skill should not require a single language unless it offers user opt-in or clearly documents a justified regional constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The file content is entirely presented in Chinese and begins with a Chinese title, with no indication that language selection is optional or limited to a justified region-specific context. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

标题及全文均以中文撰写,并面向“AI 通识课授课者 / 专家技能调用”,但文档中未说明这是仅限中文授课场景的区域性材料,也未提供语言选择或用户 opt-in。按规则,强制特定语言而无选择或明确正当化,属于自然语言层面的语言/locale 政策风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

该模板在 HTML 中直接要求使用 lang="zh-CN",且全文以“统一”“必须”等措辞规定中文内容与中文注释,属于自然语言层面的固定语言/地区设置。文档未说明这是仅面向中文教学场景的受限技能,也未提供用户按需选择其他语言或 locale 的机制。

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The guide instructs running npx -y acorn without pinning a package version, which causes code execution to depend on whatever package version is current at execution time. In build or validation workflows this creates a supply-chain risk: a compromised or breaking upstream release could execute unexpectedly or alter validation behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The 2D template sets <html lang="zh-CN">, and the document overall instructs Chinese-only UI patterns such as keeping Chinese out of WEBGL rather than offering localization options. This is a natural-language locale policy concern because the skill content implicitly forces a specific language/locale without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The 3D example uses <html lang="zh-CN"> and Chinese interface text such as 选择节点…, with no indication that users may choose another language or that the skill is region-specific. Under the policy rule, forcing a specific locale in natural-language content is a reportable issue unless justified or optional.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt states '默认使用中文回答' and only switches languages if the user explicitly requests another one. This imposes a specific language by default rather than offering a neutral language choice or obtaining prior user opt-in, which matches the locale/language policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The document presents the skill entirely in Chinese and the sample HTML hard-codes lang="zh-CN", while no opt-in, alternate locale, or justification for a China-specific language constraint is provided. Under the policy rule, forcing a specific language without user choice can be 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
77% confidence
Finding

This markdown file is natural-language content, so policy checks apply. The file presents all instructions and user-facing guidance exclusively in Chinese and does not indicate that other languages are supported or that the language choice is intentional and opt-in, which can be read as a locale/language constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

该文档从标题到引言均默认使用中文,且表述为“供授课教师直接使用”,没有说明这是面向中文教学场景的区域性材料,也没有提供用户选择语言的机制。根据规则,若技能内容强制特定语言而无用户 opt-in,属于自然语言层面的组织政策风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill template is written as mandatory Chinese instructions, including the directive to continue input using the provided template. There is no indication that users may choose another language, which can violate language/locale policy requirements when no opt-in or documented constraint is provided.

Content

No source excerpt is available for this finding.