Back to skill

Security audit

content-calendar-planner

Security checks for vulnerabilities and agentic risk

Overview

The bundled planner has limited local access, but its calendar features are incomplete and its optional Windows app needs separate review.

Expect a basic weekly outline requiring manual completion. The supplied CSV does not match the script's parser, so do not rely on its fields being used. Choose a dedicated output folder to avoid overwriting an existing plan.md. The optional Windows app is unnecessary for the planner and requires its own security review; a matching publisher-provided hash alone does not establish safety.

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The code provides a dated weekly skeleton, but omits several defining features of the declared calendar builder. The seasonal-date guardrail is only static text, not implemented seasonal mapping. Local input reading and output writing support the stated purpose; no unrelated access or undeclared external activity is evident.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: file_write.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
## Guardrails (hard rules)

- Never put a seasonal moment in the plan without checking the date for that year.
- Never plan a sponsored slot without the disclosure line written into the slot.
- Never fill a slot with a statistic or a claim that has no source.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · scripts/build_content_calendar.py (reported line 91)May include surrounding context.

python
day += step
    report.append("")
    report.append("## Guardrails to keep")
    for rule in ["Never put a seasonal moment in the plan without checking the date for that year.", "Never plan a sponsored slot without the disclosure line written into the slot.", "Never fill a slot with a statistic or a claim that has no source."]:
        report.append(f"- {rule}")
    write_out(out_dir, "plan.md", report)

The generated plan omits the owners, channels, and week-mapped US seasonal moments promised by the manifest.

Low
Category
Excessive Agency
Confidence
99% confidence
Finding

The calendar entries contain only weekly dates and either the initial focus or the placeholder 'next block'; the code never assigns owners or channels or maps US seasonal moments to their weeks. Appending a reminder to check seasonal dates does not implement the seasonal mapping described in the manifest.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.