Back to skill

Security audit

Zhizhi Math Coach

Security checks across malware telemetry and agentic risk

Overview

This skill appears intended for math coaching, but it also enables high-impact GitHub sync, public publishing, SSH configuration, and scheduled automation around a child's learning records.

Install only if you want a local-first math coaching workspace that may also manage GitHub sync, public worksheet links, SSH deploy keys, and scheduled reminders. Before enabling cloud sync or Pages, verify the repository is private or that you are comfortable exposing committed learning files, and review .zhizhi-math-coach/config.json for auto-pull, auto-commit, auto-push, auto-publish, and cron settings.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (21)

Lp3

Medium
Category
MCP Least Privilege
Confidence
97% confidence
Finding
The skill invokes local scripts and workflows that imply file read/write, shell execution, network access, and environment interaction, yet it declares no permissions or capability boundaries. This creates a transparency and consent problem: users may invoke a benign-seeming tutoring skill without realizing it can sync repositories, publish content, or register automation jobs.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The declared purpose is math coaching, but the instructions also authorize repository configuration, SSH/deploy-key preparation, git pull/commit/push, GitHub Pages publishing, API polling, and scheduler registration. That mismatch materially increases attack surface because a user expecting tutoring may unknowingly trigger code execution and data exfiltration or public exposure paths.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The guide instructs operators to configure GitHub deploy keys, automatic sync, and public GitHub Pages publishing for a skill described primarily as local primary-school math coaching. These features can expose a child's learning records and worksheets to external repositories or public URLs, and the workflow encourages enabling write-capable deploy keys and public-repository acceptance without strong privacy guardrails.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The script tests remote repository reachability and optionally push authorization, introducing outbound network and credential-use behavior unrelated to basic primary-school math coaching. In this skill context, that expands the trust boundary and can expose repository metadata or trigger unintended use of locally configured Git credentials on a parent's machine.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The script can persist settings that enable automatic pull, commit, and push, including optional syncing of full learning data, which may contain children's educational records or other sensitive family data. In a child-focused math-coaching skill, automatic repository synchronization is especially risky because it can silently move private data to GitHub, potentially to a public repository if misconfigured.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The script performs GitHub deploy-key setup, SSH configuration, and remote rewrites, which is unrelated to the declared math-coaching purpose of the skill. In a skill package, this kind of infrastructure-manipulation behavior increases supply-chain and trust risk because it can establish persistent repository access and alter developer environment settings under the guise of an educational tool.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The presence of GitHub/OpenClaw synchronization management code in a primary-school math coaching skill is a material scope mismatch. That mismatch makes the file more suspicious because it introduces credential-related and environment-modifying behavior that users would not reasonably expect from the stated functionality.

Description-Behavior Mismatch

Medium
Confidence
84% confidence
Finding
The script automatically performs pull, commit, and push operations on a personal learning repository, which exceeds a narrow math-coaching function and can transmit local learning data to a remote repository. In this skill context, that increases privacy and data-exfiltration risk because student records or worksheet data may be synced off-device if configuration is permissive or misunderstood.

Context-Inappropriate Capability

Medium
Confidence
86% confidence
Finding
Executing external git commands to fetch, pull, commit, and push gives the skill filesystem and network-side effects not clearly required for tutoring. In a child-focused educational skill, this is more dangerous because the repository may contain learning history, grades, or generated materials that can be unintentionally published or synchronized to external infrastructure.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill explicitly allows automatic sync, publishing, and automation registration without an in-task warning or confirmation once a config flag is set. Because the workspace may contain sensitive student records, mistakes, and progress data, automatic networked actions can expose or propagate personal data without situational user awareness.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The workflow directs the agent to persist student grading results and related learning data to local records by default, but it does not require any user-facing disclosure or consent before storage. Because this skill handles a child’s educational data, silent persistence increases privacy risk and may surprise users who expected an ephemeral grading interaction.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The context-building and recording flow appends activity to `.zhizhi-math-coach/run-log.jsonl` without an explicit warning that grading events are logged. Even if intended for diagnostics, undisclosed logging of children’s learning activity can expose sensitive metadata, create unnecessary retention, and complicate compliance with privacy expectations.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The optional Git sync can commit and potentially later push updated learning data without a clear warning to the user at the time data is recorded. In the context of a primary-school tutoring skill, repository sync materially increases exposure because student performance history may be copied beyond the local workspace and transmitted to remote infrastructure.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The file is written entirely in Chinese and defines required output labels such as `复发`, `迁移失败`, and `处理策略` without any indication that the language should follow the user's preference. This can force responses or structured fields into a fixed language, which may confuse users, reduce accessibility, and make downstream handling fail when an English-speaking parent or system expects another language.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The standard explicitly instructs the agent to infer grade and semester from local memory, which implies use of stored student data without requiring transparency, consent, or data-minimization checks. In a child-focused educational skill, silent use of prior memory increases privacy risk because it can process personal information about a minor beyond the user’s immediate prompt.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
By default, the script writes to ~/.ssh/config and adds a host alias without any interactive confirmation or strong upfront warning. Modifying SSH client configuration can affect future connections, create persistence, and surprise users, especially when bundled inside a skill whose declared purpose is unrelated to SSH or GitHub administration.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
7. Explain the correction in parent-friendly language, and include a shorter student-facing version when useful.
8. Generate short validation practice for the cause, not just the surface topic.
9. Update the mistake book, progress dashboard, weak-point records, memory, and next-practice suggestion only when evidence supports it.
10. If automatic Git sync, Pages publishing, or scheduled reminders are enabled in `.zhizhi-math-coach/config.json`, sync/publish/register supported automation without asking again after local files are written.

## Expected Workspace
Confidence
95% confidence
Finding
without asking

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- `scripts/prepare_github_deploy_key.py`: generate a repository-scoped SSH deploy key and public-key setup instructions for GitHub Deploy keys.
- `scripts/setup_github_pages_workflow.py`: create `.github/workflows/pages.yml` for publishing `site/` through GitHub Actions.
- `scripts/setup_scheduled_tasks.py`: enable automation config and register OpenClaw cron reminder jobs when `openclaw cron` is available.
- `scripts/sync_learning_repo.py`: pull, commit, and push configured learning-data changes without asking again when automatic sync is enabled.
- `references/daily-grading-workflow.md`: fast grading, light recording, automatic full-archive upgrade, subagent boundary, validation, recording, and grading sync.
- `scripts/build_grading_context.py`: build one compact grading context from config, active context, and curriculum profile.
- `scripts/validate_diagnosis_payload.py`: validate diagnosis JSON before writing records.
Confidence
93% confidence
Finding
without asking

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Read `references/daily-grading-workflow.md`.

Default daily grading is one-turn `fast_grade_light_record`: grade the photo or wrong-question batch, return the parent-facing summary, and write a light local record without asking the parent for another message. Use `fast_grade_only` only when the parent explicitly says not to record. Upgrade yourself to `full_archive` when the evidence justifies it; do not wait for the parent to say "完整归档".

Build compact context first:
Confidence
91% confidence
Finding
without asking

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
The push triggers the GitHub Actions Pages deployment. Return the expected URL `https://<github-user>.github.io/<repo>/` and tell the parent that the first deployment may take a short time.

In normal worksheet generation, first return or send the generated `worksheet.pdf` when available. If Pages mode is already configured in `.zhizhi-math-coach/config.json`, run `publish_and_wait_pages.py` after `generate_worksheet.py` without asking again when `pages.auto_publish_worksheets` is true. Otherwise run it only when a public link is wanted. Return:

- the public index URL;
- the newly generated worksheet URL;
Confidence
93% confidence
Finding
without asking

Credential Access

High
Category
Privilege Escalation
Content
public_key = public_key_for(key_path)

    if not args.no_ssh_config:
        update_ssh_config(Path.home() / ".ssh" / "config", host_alias, key_path, owner, repo)

    remote_url = f"git@{host_alias}:{owner}/{repo}.git"
    if args.configure_remote:
Confidence
90% confidence
Finding
Path.home() / ".ssh"

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.dynamic_code_execution

Dynamic code execution detected.

Critical
Code
suspicious.dynamic_code_execution
Location
scripts/validate_worksheet_spec.py:29