Back to skill

Security audit

Newsletter Monetization Planner

Security checks for vulnerabilities and agentic risk

Overview

This is a planning-only newsletter monetization skill with disclosed inputs, limited memory writes, and no executable code or hidden install behavior.

Before using projections commercially, confirm that the sellable audience excludes subscribers without commercial-mail consent and review any sponsorship or offer claims before publishing. Installing this skill mainly adds planning instructions and optional memory summaries, not code execution.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (2)

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
88% confidence
Finding

The skill explicitly allows itself to continue modeling on the stated audience when no consent ledger is present, only flagging the gap as an open loop. In a marketing/commercial-email context, that can normalize or operationalize plans built on unverified consent status, increasing the chance that downstream outreach targets recipients who did not authorize commercial messages.

Content

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

md
**Decision gate**:

- **Stop and ask (NEEDS_INPUT)** — when none of list size, open rate, or a price/revenue target is provided or inferable: you cannot size any revenue line. Ask for (1) active-subscriber count, (2) open/click rate or an ESP export, and (3) the monetization goal.
- **Continue silently** — missing optional data does not stop the run: no GA4 export → mark landing conversion Estimated and proceed; sponsorship not in scope → skip the rate card; no consent ledger present → flag the S2 gap as an open loop and model on the stated audience.

**Quality bar** before handoff: (1) each active revenue line has a stated, labeled assumption; (2) no revenue figure is presented as Measured when it rests on an estimate; (3) the growth ↔ revenue projection names at least one loop and its input; (4) every sponsorship is disclosure-labeled and every substantiation-needing claim is flagged for D1. If any item fails, fix it or report it in the handoff — do not ship silently.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The displayName and summary force bilingual output cues (English plus Chinese) in the skill's natural-language metadata, but the file does not say whether the skill will respond in the user's preferred language or ask for a preference. Under the policy, locale/language behavior should be user-selectable or clearly justified when constrained.

Content

No source excerpt is available for this finding.