Back to skill

Security audit

code-review

Security checks across malware telemetry and agentic risk

Overview

This code-review skill matches its stated purpose, but it can automatically change, push, or discard repository files and handle SSH key setup without clear confirmation gates.

Use this skill only in repositories where automated report commits, dependency installs, and cleanup operations are acceptable. Prefer disposable clones or read-only access, and require manual confirmation before any git push, .gitignore edit, SSH key generation, dependency installation, or reset/clean operation, especially for scheduled runs.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (27)

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The document states that local review should not modify the user's project directory, yet it earlier recommends `volta pin node@<version>`, which writes a `volta` field into `package.json`. This inconsistency can cause unintended file modification, dirty working trees, and accidental inclusion of environment-specific changes in commits, especially in an automated review workflow.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
The skill documentation authorizes modifying `.gitignore` and then committing and pushing those changes to the target repository during a code-review workflow. That exceeds the stated scope of passive analysis/reporting and creates an integrity risk: an automated review tool could make unauthorized repository changes, trigger CI/CD, or alter evidence in the codebase being reviewed.

Intent-Code Divergence

Medium
Confidence
86% confidence
Finding
The document says the local review scenario does not modify the user's project directory, yet later instructs automatic appending to `.gitignore`. This contradiction is dangerous because operators may trust the 'non-modifying' guarantee while the skill still performs writes, leading to unintended local changes and weakening informed consent around filesystem mutation.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The document instructs the code-review skill to modify the reviewed repository by appending `.venv/` to `.gitignore`, committing the change, and pushing it upstream. That exceeds a read-only review/reporting role and creates an unauthorized write path to user repositories, which is dangerous because a review workflow could silently alter source control state or be expanded to make additional changes under the guise of automation.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
Automatic `git commit` and `git push` are powerful side-effecting operations that are not justified by the stated purpose of code quality checking and report generation. In a security-sensitive automation context, this enables the skill to change remote repositories without explicit approval, potentially causing unauthorized modifications, policy violations, or supply-chain risk if used against shared repos.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The document claims local review should not modify the reviewed project, but later instructs the operator to activate a project's existing .venv or .conda environment and install or upgrade tooling there. That can alter the target project's environment, introduce dependency drift, and violate isolation assumptions during a security review.

Description-Behavior Mismatch

Medium
Confidence
89% confidence
Finding
The Pyright fallback chain expands from Python package installation into npm/npx, including npx auto-download behavior. This broadens the trust boundary to another package ecosystem and permits ad hoc network retrieval and execution of tooling that was not part of the declared Python-only review dependency model.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The skill is described as a code-review tool, but this guidance expands its behavior into SSH authentication setup, permission troubleshooting, and support for push-capable repository access. That exceeds least-privilege for a review-only workflow and increases the chance the agent will manipulate credentials or request elevated repository access unnecessarily.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The instructions direct the agent to read a local SSH public key and transmit it back to the user as part of automated setup. Even though a public key is not secret like a private key, accessing credential material from the local environment is outside the stated review purpose and normalizes credential-handling behavior that could be abused or extended unsafely.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The skill's trigger conditions are broad and match common phrases like '代码审查', 'code review', '检查代码质量', and '审查报告', which are likely to appear in ordinary conversation. This increases the chance of unintended skill invocation, causing the agent to enter a repository-accessing and report-generating workflow without sufficiently explicit user intent, especially given the skill can clone repositories and perform multi-step actions.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The remote workflow directs the system to install Volta, fetch Node versions over the network, and run `volta pin`, which modifies `package.json`, but it does not clearly warn users that these actions perform network downloads and alter project files in the workspace. In a code-review skill, this is risky because review automation is expected to be minimally invasive; hidden side effects can expand attack surface, trigger supply-chain exposure, and contaminate the repository state used for reporting or follow-on tasks.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The markdown instructs automatic `.gitignore` modification and possible commit/push without requiring an explicit warning or confirmation before repository changes. In the context of a code-review skill, this is more dangerous because users reasonably expect analysis and report generation, not state-changing source control operations that can affect collaboration history and remote systems.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
This section instructs users to download, overwrite, move, and optionally delete local files and directories, including replacing an existing skill installation, without clearly warning about local file modification, possible data loss, or the trust implications of installing remote content. In an agent-skill context, these are operationally sensitive actions because an AI assistant could follow them on the user's behalf and alter local state or replace trusted skill contents with unreviewed code.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
These instructions tell the agent to automatically install or switch Node versions and then install project dependencies in a remote review flow, which changes the execution environment and project state without any user-facing confirmation or safety gate. In a security-sensitive agent context, automatic package installation can execute arbitrary lifecycle scripts from untrusted repositories or alter shared environments, expanding risk beyond passive analysis.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The fallback chain explicitly directs `npm install -g typescript`, which modifies the global system state and may pull and execute code from the package registry without consent. For an agent reviewing arbitrary codebases, this is dangerous because it combines unnecessary privilege/scope expansion with automatic execution behavior, creating supply-chain and persistence risks.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The ESLint fallback instructs the agent to add development dependencies directly into the target project (`pnpm add -D`, `yarn add -D`, `npm install -D eslint`) and rerun them, modifying repository contents and potentially executing package manager hooks. In the context of a code-review skill that may operate on untrusted repositories, this turns a read-oriented analysis action into a write-and-execute workflow, increasing the chance of supply-chain abuse and unintended project changes.

Missing User Warnings

High
Confidence
99% confidence
Finding
The instructions describe modifying `.gitignore` and pushing the change to the remote repository without any explicit warning, confirmation, or approval checkpoint. Lack of consent for write actions materially increases the risk of unintended repository changes and makes it easier for a review skill to perform destructive or policy-breaking actions under normal execution.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The file authorizes additional outbound actions in vaguely defined 'remote dialogue / plugin tool' scenarios, including git push and file transmission, without requiring an explicit per-run user confirmation. In a code-review skill, this broad trigger can cause unintended exfiltration of repository-derived reports or automatic writes to remote repositories when the execution context is misclassified or loosely inferred.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The documented update flow uses `git reset --hard HEAD` and `git clean -fd`, which irreversibly discard local modifications and untracked files. Because the steps are mandatory and presented without an explicit warning or confirmation gate, the skill could cause unexpected data loss in a user's workspace.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The scheduled workflow explicitly instructs the agent to discard any uncommitted local changes before proceeding, but it provides no requirement for confirmation, backup, stashing, or even a warning to the user. In a code-review skill that operates on local repositories, this can cause irreversible loss of user work or destruction of forensic/debugging state, especially if the target path was misidentified or reused across tasks.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The trigger conditions are broad enough to activate the skill from generic phrases like '检查代码质量' and also allow unconstrained plugin or remote-dialog invocation. In a skill that can clone repositories, move files, write reports, and later push changes, ambiguous activation increases the chance of unintended execution and repository access without sufficiently explicit user intent.

Missing User Warnings

High
Confidence
97% confidence
Finding
This workflow instructs the agent to save files, move reports to archive locations, update ignored-issue lists, and in remote scenarios attempt git commit and push, but it does not require an explicit warning or consent before modifying local or remote state. That creates a real risk of unauthorized repository changes, accidental data loss from file moves, and unexpected pushes to shared remotes.

Missing User Warnings

High
Confidence
97% confidence
Finding
The workflow explicitly instructs the agent to automatically run `git reset --hard HEAD` and `git clean -fd` whenever uncommitted changes are detected, which will irreversibly delete local modifications and untracked files. In a scheduled/automatic workflow, this is especially dangerous because it can destroy user data without confirmation, backup, or scope validation, and the skill context makes it more dangerous because the repository path is computed automatically and then operated on non-interactively.

Credential Access

High
Category
Privilege Escalation
Content
4. **已有密钥但权限不足(GitHub SSH 权限重试)**
   - 当克隆或推送因 `Permission denied (publickey)` 或 `Could not read from remote repository` 失败时:
     - **不重新生成 SSH 密钥**(避免之前的配置失效)
     - 读取当前使用的公钥内容(`~/.ssh/id_ed25519.pub` 或 `~/.ssh/id_rsa.pub`)
     - **将公钥内容发送给用户**,并提示:
       > 当前 SSH 密钥无法访问目标仓库,可能是该仓库需要额外权限,或密钥尚未添加到 GitHub 账号。请将以下公钥添加到 GitHub 账号的 **Settings → SSH and GPG keys → New SSH key** 中,或确认该密钥对目标仓库有访问权限。处理完成后告知我,我将继续执行。\n\n`<公钥内容>`
     - 等待用户确认后,重新尝试失败的 Git 操作
Confidence
90% confidence
Finding
~/.ssh/id_ed25519

Credential Access

High
Category
Privilege Escalation
Content
4. **已有密钥但权限不足(GitHub SSH 权限重试)**
   - 当克隆或推送因 `Permission denied (publickey)` 或 `Could not read from remote repository` 失败时:
     - **不重新生成 SSH 密钥**(避免之前的配置失效)
     - 读取当前使用的公钥内容(`~/.ssh/id_ed25519.pub` 或 `~/.ssh/id_rsa.pub`)
     - **将公钥内容发送给用户**,并提示:
       > 当前 SSH 密钥无法访问目标仓库,可能是该仓库需要额外权限,或密钥尚未添加到 GitHub 账号。请将以下公钥添加到 GitHub 账号的 **Settings → SSH and GPG keys → New SSH key** 中,或确认该密钥对目标仓库有访问权限。处理完成后告知我,我将继续执行。\n\n`<公钥内容>`
     - 等待用户确认后,重新尝试失败的 Git 操作
Confidence
90% confidence
Finding
~/.ssh/id_rsa

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.