Back to skill

Security audit

Wedding Invitation Generator

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to generate wedding invitation images as advertised, but it needs Review because it exposes the API token through command-line arguments and documents mutable install commands.

Install only from a pinned, trusted release if possible. Use a low-privilege or short-lived Neta token, avoid running this with a literal token on shared machines or in CI logs, and rotate any token that may have been saved in shell history. Expect your prompt, optional reference UUID, and token to be sent to api.talesofai.com.

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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:31
Finding

Unpinned Remote Installation Creates a Supply-Chain Risk

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
weddinginvitationgenerator.js:13
Finding

API Token Is Exposed Through Command-Line Arguments

Content
View full analysis
. Pass your token on every invocation using the `--token` flag: ```bash node weddinginvitationgenerator.js "your prompt" --token YOUR_TOKEN ``` Shell expansion works if you prefer to keep the token in your shell session: ```bash node weddinginvitationgenerator.js "your prompt" --token "$NETA_TOKEN" ``` The `--token` flag is the only way to provide your token to this script. ``` ### Technical Analysis The script exclusively accepts the API credential through the `-- ...[truncated 2014 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Rp1

Medium
Category
MCP Rug Pull
Confidence
78% confidence
Finding

The README instructs users to install and execute tooling via npx skills without pinning a specific version. This creates a supply-chain risk: users may fetch and run whatever package/version is current at install time, including a compromised or typosquatted release. In a skill-distribution context, that increases exposure because installation implicitly executes remote code on the user's machine.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The README repeatedly tells users to pass the API token with --token YOUR_TOKEN and even states this is the only supported method. Command-line arguments can be exposed through shell history, process listings, logging, crash reports, and CI job output, which can leak the credential to other local users or systems. Because this is an API token for an external service, theft could enable unauthorized usage and billing abuse.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill declares only tools: Bash and does not constrain network-capable behavior with explicit tool scope or permissions, even though the documented workflow depends on an external API token and network access. In an agent setting, this can cause overbroad execution rights and unexpected outbound requests, increasing the risk of data exfiltration or misuse if the script or future updates behave unsafely.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Line L20 says to use the skill when someone asks to 'generate or create ai wedding invitation design generator images,' which is ambiguous and not a specific trigger phrase set. It lacks clear scope, examples, or exclusion conditions, increasing the chance of unintended invocation for loosely related wedding-design requests.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

The install instruction uses npx skills add omactiengartelle/wedding-invitation-generator without pinning a specific version or immutable reference. This creates a supply-chain risk: users may install a changed or compromised package later than the one reviewed, and an attacker controlling the upstream package or dependency resolution path could deliver malicious content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script accepts an API token on the command line and then uses it in outbound requests. Command-line secrets are commonly exposed through shell history, process listings, CI logs, and telemetry, so this creates avoidable credential leakage risk even though the transport itself uses HTTPS.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · weddinginvitationgenerator.js (reported line 82)May include surrounding context.

js
let res;
  try {
    res = await fetch('https://api.talesofai.com/v3/make_image', {
      method: 'POST',
      headers,
      body: JSON.stringify(body),

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 · weddinginvitationgenerator.js (reported line 82)May include surrounding context.

js
let res;
  try {
    res = await fetch('https://api.talesofai.com/v3/make_image', {
      method: 'POST',
      headers,
      body: JSON.stringify(body),

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 · weddinginvitationgenerator.js (reported line 128)May include surrounding context.

js
let res;
  try {
    res = await fetch('https://api.talesofai.com/v3/make_image', {
      method: 'POST',
      headers,
      body: JSON.stringify(body),

Static analysis

No suspicious patterns detected.