Back to skill

Security audit

Velora

Security checks for vulnerabilities and agentic risk

Overview

This Velora automation skill appears purpose-aligned, but it needs review because it handles live account credentials unsafely and can perform real account actions.

Review carefully before installing. Use a test Velora account if possible, avoid passing passwords on the command line, prefer environment variables or a secure prompt, and confirm each login, message, and image request before running the automation on a real account.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/velora-chat.js:60
Finding

Velora credentials exposed through command-line arguments

Content
View full analysis
= 4) { veloraChat(args[0], args[1], args[2], args.slice(3).join(' ')) .then(r => { console.log('\n✅ Done'); process.exit(r.success ? 0 : 1); }); } else { console.log('Usage: node velora-chat.js '); console.log('Example: node velora-chat.js test@test.com Test1234. Lilith "Hey!"'); } ``` `SKILL.md:42-54`: ```bash # Basic chat node scripts/velora-chat.js "email@domain.com" "password" "Lilith" "Hey, how are you?" # With image generation request node scripts/velora-chat.js "email@domain.com" "password" "Rin" "Send me your best photo!" ``` **Usage:** ```bash node scripts/velora-chat.js ``` ### Technical Analysis The script reads the account email and password directly from `process.argv`. Contrary to the preceding recommendation to use environment variables, the documented and implemented CLI interface requires users to put the plaintext password into the command line. Command-line arguments may be exposed through shell history, process inspection utilities, process-monitoring agents, CI job metadata, terminal transcripts, audit logs, or diagnostic data. The example containing a realistic password format also encourages this insecure usage pattern. The script does not print the supplied password itself, but that does not prevent exposure through operating-system and shell facilities outside the process. ### Attack Path 1. A user follows the documented Quick Start command and supplies a valid Velora email address and password as positional arguments. 2. The shell may retain the complete invocation in its ...[truncated 1073 chars]
Remediation
View remediation
.' ); process.exit(1); } veloraChat(email, password, args[0], args.slice(1).join(' ')); ``` ]]>

T08 · Insecure Dependencies

Note
Location
SKILL.md:15
Finding

Playwright dependency is installed without a pinned version or lockfile

Content
View full analysis
Remediation
View remediation
" } } ``` Installation documentation should then direct users to run: ```bash npm ci npx playwright install chromium ``` ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
Findings (12)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/velora-chat.js "email@domain.com" "password" "Lilith" "Hey, how are you?"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/velora-chat.js "email@domain.com" "password" "Lilith" "Hey, how are you?"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/velora-chat.js "email@domain.com" "password" "Lilith" "Hey, how are you?"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill automates login, chat interactions, and image generation against a live third-party account but does not prominently warn about privacy exposure, message transmission, account activity, or potential billing/usage effects. In this context, users may unknowingly provide credentials or trigger actions that affect their account history, companion interactions, or stored media.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
83% confidence
Finding

The skill instructs users to run npx playwright without pinning a specific version, which can fetch and execute whatever package version is current at runtime. This creates a supply-chain risk: a compromised upstream release or unexpected breaking change could execute unreviewed code on the user's machine during setup.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad and natural-language based, such as "Chat with [Companion Name]" and "Generate [Companion Name]'s image," which can cause the skill to be invoked from ordinary conversation rather than explicit user intent. Because this skill performs browser automation and account-authenticated actions, accidental invocation can lead to unintended logins, messages, or image-generation requests on a real account.

Content

No source excerpt is available for this finding.

YARA rule 'network_reconnaissance': Network reconnaissance and scanning patterns [hacktools]

Medium
Category
YARA Match
Confidence
65% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · references/companions.md (reported line 9)May include surrounding context.

md
# Velora Companions Reference

## Anime Companions

| Name | Type | Description |
|------|------|-------------|
| Amara | Radiant temptress 💋 | Confident and seductive |
| Aoi | Sporty & flirty 🔥 | Athletic and playful |
| Aria | Bold & fierce | Strong personality |
| Aya | Playful tease 😈 | Mischievous |
| Blaze | Feuer & Leidenschaft | Fire-themed |
| Camille | Artistic seductress 🎨 | Creative type |
| Celeste | Starlit dreamer ✨ | Ethereal |
| Cleo | Ancient allure | Mysterious |
| Coral | Meerjungfrau | Aquatic |
| Dahlia | Night orchid 🌙 | Dark and beautiful |
| Elena | Velvet mystery 🖤 | Elegant |
| Ember | Warm & cozy | Comforting |
| Freya | Cozy warmth ❄️ | Nordic |
| Hana | Cherry sweetheart 🌸 | Sweet |
| Iris | Sanfte Heilerin | Healer type |
| Isabella | Passionate lover 💃 | Latin style |
|

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script accepts an email and password as positional CLI arguments, which can expose credentials through shell history, process listings, CI logs, or audit tooling on the host system. This is not merely a usability issue: it creates a concrete secret-handling weakness that can leak account credentials to other local users or operational systems.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The script logs into a remote website and submits both credentials and a chat message, but there is no docstring, comment, or user-facing warning explaining that sensitive user-provided data will be transmitted to an external service. The console logs only describe progress, not the privacy or data-transfer implications.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example automation uses the literal selector 'Neuer Chat', which assumes a German-language interface. This imposes a locale-specific behavior without offering user opt-in or documenting that the skill is limited to German UI settings.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The reference includes descriptors in multiple languages such as German terms on L11 and L21 and a Korean-locale framing on L23, but the document does not explain this as an opt-in or region-specific behavior. This can conflict with language/locale policy expectations when a skill implicitly imposes or mixes locales without user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The script searches for the button text Neuer Chat, which assumes a German-language interface. This creates a locale-specific dependency without documenting the requirement or offering a user-selectable alternative.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.