Back to skill

Security audit

Security Health Check

Security checks for vulnerabilities and agentic risk

Overview

This security-check skill is mostly purpose-aligned, but it handles passwords and automatically sends a password-derived HIBP hash prefix while some CLI text says the password is only analyzed locally.

Review this before installing if you have strict privacy or offline-only requirements. The raw password is not sent to HIBP, but a SHA-1 prefix derived from it is sent during password checks, and the current CLI wording does not make that consistently clear.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description and guiding principle are presented entirely in Chinese, and the sample outputs later in the file also assume Chinese responses. There is no indication that the skill is region-specific or that users may opt into another language, which creates a language/locale policy issue under the natural-language policy rule.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

The skill transmits derived sensitive data to an external service: the first 5 characters of the SHA-1 hash of a user password are sent to HIBP. Although this uses the standard k-anonymity design and is far safer than sending the raw password, it still performs external disclosure of password-derived material and may violate strict privacy, compliance, or offline-only expectations if users are not clearly warned and consent is not obtained.

Content

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

md
try:
        r = requests.get(
            f"https://api.pwnedpasswords.com/range/{prefix}",
            headers={"Add-Padding": "true"},
            timeout=10
        )

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code file includes natural-language descriptions and output text that force a specific language/locale for the tool experience. The policy only permits this when the skill offers a language choice or clearly justifies the locale constraint, which is not present here.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/health_check.py (reported line 54)May include surrounding context.

python
try:
        r = requests.get(
            f"https://api.pwnedpasswords.com/range/{prefix}",
            headers={"Add-Padding": "true"},
            timeout=15
        )

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The CLI help text says the password is used for '仅本地分析' ('local-only analysis'), but the password-check flow calls the HIBP API with a SHA-1 prefix derived from the password. Even though this uses k-anonymity and does not send the full password, it is still external transmission of password-derived data, so the claim is misleading and can cause users to disclose secrets under false assumptions.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.