Back to skill

Security audit

PowPow Kayıt — kayıt ol, seyahat günlüğünü haritaya iliştir ve dijital insanlarla sohbet et

Security checks for vulnerabilities and agentic risk

Overview

The skill automates PowPow account registration and optional checkout in a disclosed, purpose-aligned way, with temporary local session state but no evidence of hidden exfiltration or persistence.

Install only if you are comfortable letting the agent create a PowPow account, handle a verification code, upload an optional avatar, and create optional checkout sessions. Treat the one-click login link and temp state file as account access material, run cleanup at the end, and complete any Alipay or PayPal payment yourself only after checking the plan and renewal terms.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (23)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Ana script `scripts/powpow-register.mjs`: **sıfır bağımlılık**, **Node ≥ 18** gerektirir. Başlamadan önce ortamın çalıştığını doğrulamak için bir kez `node sc

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

All user-facing natural-language guidance in the file is presented in Turkish, and the document does not offer alternative languages or indicate that Turkish is an intentional, justified locale constraint. This can violate language/locale policy when users are not given an explicit opt-in or choice.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README promotes agent-led account registration, profile photo upload, and subscription/payment-flow handling, but it does not provide a clear, prominent user warning about what personal data the agent will access, retain, transmit, or temporarily store. In a workflow involving credentials, verification codes, profile images, and account/payment state, missing privacy and consent disclosures increase the risk of users unknowingly exposing sensitive data or delegating actions they do not fully understand.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill description, triggers, UX script, and required user-facing phrases are written as mandatory Turkish-language instructions, including fixed response templates. There is no opt-in, alternative language path, or justification that the skill is region-specific, which creates a natural-language policy concern for language/locale choice.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The notes describe broad agent-driven actions such as sending verification codes, registering accounts, placing orders, and automatically switching to payment flows, but they do not define clear user-trigger boundaries, consent checkpoints, or limits on when those actions may occur. In an agent skill, ambiguous activation language can enable unintended high-risk actions involving account creation and purchases, increasing the chance of unauthorized or confusing automation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file's operational instructions, commands, and user guidance are all presented in Turkish, but there is no indication that the skill is Turkish-only by design or that the user can choose another language. This creates a natural-language locale constraint that may conflict with organizational policy requiring language choice or explicit justification.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The document states the password is never shown in logs, but the workflow also instructs use of gen-password, which prints the generated password to stdout for the user. In many agent, shell, terminal capture, or CI/chat-integrated environments, stdout may be logged, persisted, or exposed to other local observers, undermining the stated secrecy guarantees for a credential used to create and later refresh the account.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly authorizes the agent to open payment orders and poll for activation on the user's behalf, but it does not require a clear per-action user confirmation or a strong warning before initiating those sensitive account/payment-adjacent operations. Even if the agent never handles payment credentials directly, creating billable orders and driving the user into a checkout flow can trigger unintended charges, confusion, or social-engineering-style coercion if done without explicit consent at the moment of action.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The document begins entirely in Turkish and presents the registration-flow guidance in that language without any indication that users may choose another language. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale constraint is clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s natural-language instructions and labels are entirely in Turkish, which can impose a specific language on users or maintainers without any stated opt-in or alternative locale. This matches the policy category for language or locale constraints that are not explicitly offered as a choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s user-facing natural-language strings, command help, and operational messages are entirely in Chinese, including errors and usage guidance. Because the script does not offer any language selection or indicate that it is intentionally limited to a Chinese-speaking or region-specific audience, this appears to violate the policy against forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest sets the language to Turkish via the language field, while other metadata includes Chinese content and does not explain that this is a region-specific or user-selected constraint. This can violate language/locale policy expectations when a skill imposes a language without opt-in or documented justification.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file header says the temp-state file stores only email, username, nickname, JWT token, order number, and flow step. In practice, saveState writes many additional fields across the script, including codeSentAt, registeredAt, userId, provider, package, amount, subscriptionId, approveUrl, plan details, and timestamps for order/login events. This is a direct documentation-to-code inconsistency, even though the extra fields are not obviously malicious.

Content

No source excerpt is available for this finding.