Back to skill

Security audit

PowPow Registrazione — Registrati su Bolla, appunta il tuo diario di viaggio sulla mappa, chatta con gli umani digitali

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed PowPow registration helper that uses an included Node script to create an account, generate login links, and optionally start official payment flows, with session-token handling users should treat carefully.

Install only if you want an agent to handle PowPow registration on your behalf. Treat generated login links as private session links, run cleanup when finished, provide payment credentials only to the official Alipay or PayPal checkout pages, and avoid using the optional avatar path unless you intend that image to be uploaded to PowPow.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (21)

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

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
- Script principale `scripts/powpow-register.mjs`: **zero dipendenze**, richiede **Node ≥ 18**. Prima di iniziare esegui una volta `node scripts/powpow-register

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description is written as an Italian-language assistant persona/instruction and does not indicate that users may choose another language. Per the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill directs the agent to handle registration, email verification, login-link generation, and payment-order flows using environment variables and network access, but it declares no explicit tool scope or permissions. That creates a dangerous mismatch: a host agent may grant broader capabilities than intended, enabling credential handling and external requests without clear sandboxing or user-visible consent boundaries.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This file contains user-facing instructions and prescribed conversation UX exclusively in Italian, including fixed phrasing the agent should use. Under the policy, forcing a specific language or locale without user choice is a natural-language policy violation unless clearly documented as a justified region-specific constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest explicitly sets the skill language to "it" with no indication that users can choose another language or that the skill is intentionally limited to an Italian-specific audience. The listed policy flags language or locale constraints when they are imposed without user opt-in or clear justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file contains operational instructions only in Italian and directs the assistant to use fixed Italian phrasing such as concluding each turn with specific Italian blocks. That imposes a language/locale choice in natural-language guidance without any indication that the user can choose another language or that the constraint is region-specific and justified.

Content

No source excerpt is available for this finding.

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
72% confidence
Finding

Il flusso prevede l'invio all'utente di un link di login con token JWT nel parametro URL (/api/auth/me?token=...&redirect=...) per creare una sessione browser. Anche se descritto come endpoint ufficiale e con validazione del redirect, mettere un bearer token nell'URL aumenta il rischio di leakage tramite cronologia, log, analytics, referrer o condivisione accidentale del link; chi ottiene il link può impersonare l'utente fino a scadenza del token.

Content

Scanner excerpt · references/agent-flow.md (reported line 53)May include surrounding context.

md
Ci sono due destinazioni di link, **genera prima home, poi decidi se passare da pending in base a dove finisce l'utente**:

- **link home (inviato per primo per impostazione predefinita, `--target home` → finisce su `/`)**: generato e inviato all'utente subito dopo la registrazione riuscita.
  Nel periodo di prova gratuita l'utente entra direttamente sulla home, tutto utilizzabile; **se l'utente lo apre ma finisce sulla pagina di abbonamento, il periodo di prova gratuita è finito** — passa allora al percorso di pagamento (vedi sotto); nessuna modifica allo script e nessuna nuova registrazione necessaria.
- **link pending (usato nel percorso di pagamento, `--target pending` → finisce su `/subscription`)**:
  il browser dell'utente entra nello stato di «semi-accesso»: la pagina di abbonamento e la pagina di ritorno del pagamento sono visibili e utilizzabili. Dopo l'incasso,
  esegui `refresh-login` per scambiare contro un nuovo JWT con la dichiarazione ACTIVE, poi invia di nuovo il link home per l'iscrizione completa.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

L'intero documento operativo è scritto esclusivamente in italiano, mentre include anche stringhe e flussi per utenti internazionali e per PayPal all'estero. Non c'è alcuna indicazione che la lingua sia opzionale, selezionabile dall'utente o limitata a un contesto regionale giustificato, il che configura una violazione di policy linguistica naturale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

At L26 the phone field is restricted to mainland China numbers only, and elsewhere the document includes fixed Chinese UI messages and flows as normative behavior. The file does not state that this skill is intentionally region-specific or give users a language/locale option, which fits the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file contains user-facing operational instructions solely in Italian, and there is no indication that the skill is intentionally limited to Italian-speaking users or a specific region. Under the policy, forcing a specific language without user opt-in is 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
92% confidence
Finding

The generated HTML sets <html lang="en">, which imposes a specific language choice in user-facing output. The file otherwise uses Chinese for user-facing messages, so forcing English here appears inconsistent and lacks any documented opt-in or justification.

Content

No source excerpt is available for this finding.