Back to skill

Security audit

Notion co-worker

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent Notion assistant purpose, but it can automatically use private chat history and workspace data to post persistent Notion replies and pages with too little user control.

Review this skill carefully before installing. It is best suited only if you intentionally want an agent to read Notion notification emails, search private memory and prior chats, and post answers plus research pages into Notion. Use it with explicit approval steps, source limits, and redaction rules before anything derived from memory or prior conversations is published.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (1)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:75
Finding
Private Conversation Data May Be Disclosed to Notion Users## Vulnerability Details **File Location**: `SKILL.md:75-79` and `SKILL.md:124-154` **Vulnerability Type**: Cross-context disclosure caused by excessive access and publication **Risk Level**: High **Vulnerable code segments**: ```markdown **Level 1 — Memory & Session** Check conversation history and any available memory for prior context. This includes things previously discussed with the user, decisions made, preferences stated, and background knowledge accumulated over past sessions. Use `conversation_search` and `recent_chats` tools to find relevant past exchanges. ``` ```markdown ### Phase 5 — Create Research Subpage Create a subpage under the original Notion page that documents all research gathered during Phase 3. This serves as an audit trail and knowledge artifact. Use `notion-create-pages` with: - `parent.page_id`: the original page's ID - Title format: **`Detail comment - YYYY-MM-DD on PAGE_NAME by AGENT_NAME`** - Icon: 🔍 **Subpage content structure:** ```markdown ## Original Comment > {commenter_name}: {original comment text} ## Answer Summary {The reply that was posted — what the agent concluded} ## Research Trail ### Sources Consulted {List each source checked and what was found or not found} ### From Memory / Past Conversations {Any relevant context from conversation history — or "No relevant history found"} ### From Notion Workspace {Pages found, key excerpts, search queries used} ### From Web Search {URLs consulted, key findings — or "Web search not needed"} ## Confidence Level {High / Medium / Low} — {brief justification} ## Open Questions {Anything that remains unanswered or needs human follow-up} ``` ### Technical Analysis An external Notion comment controls the research question used by the agent. The skill directs the agent to search private memory and prior conversations, and then requires the research gathered during that phase—incl ...[truncated 2227 chars]
Remediation
## Remediation Suggestions 1. Disable memory and conversation-history searches by default for requests originating from email or Notion comments. 2. Require explicit, informed user approval before searching prior chats, and separately require approval before publishing any derived material to Notion. 3. Restrict searches to an explicitly approved project, workspace, time range, or conversation set rather than all available history. 4. Verify the identity and authorization of the requester and inspect the destination page's access scope before using private context. 5. Treat comment text, email content, Notion pages, and web content as untrusted input; do not allow them to expand the approved data-access scope. 6. Add a data-loss-prevention step that detects and redacts credentials, personal data, confidential project information, and content unrelated to the destination workspace. 7. Do not include raw conversation excerpts or a “From Memory / Past Conversations” section in shared research pages. Record only a minimal, sanitized conclusion when disclosure is explicitly authorized. 8. Present the proposed reply and research artifact to the user for review when private history contributed to the answer. 9. Maintain an audit log identifying which approved sources were queried and what sanitized content was published, without duplicating sensitive source material.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

High
Confidence
96% confidence
Finding
The trigger logic is overly broad, including phrases like 'check my mentions' or 'any new comments?' and even auto-triggering based on prior use without requiring a clear Notion-specific request. This can cause the agent to access Gmail, conversation history, Notion content, and potentially the web in response to ambiguous everyday language, leading to unintended data access and autonomous actions.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill authorizes the agent to read Gmail notifications, inspect memory and conversation history, optionally query the web, and post replies into Notion without a clear user-facing disclosure of those data flows. That creates a privacy and consent risk because users may invoke the skill without understanding that personal mailbox contents, prior chats, and workspace data may be processed and possibly incorporated into outbound replies.

Ssd 3

Medium
Confidence
94% confidence
Finding
Using accumulated memory and past sessions as a routine research source increases the chance that previously shared private information will influence replies or be surfaced into team-visible comments and records. In this skill's context, that risk is amplified because the agent is instructed to autonomously respond in Notion and create documentation artifacts, turning latent memory into externally disclosed content.

Ssd 3

Medium
Confidence
97% confidence
Finding
The subpage template explicitly instructs the agent to include memory and past-conversation context in a persistent Notion artifact. This can leak sensitive or unrelated user information from prior sessions into a shared workspace, expanding the audience and retention of data beyond the original context in which it was provided.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
Lines L168-L179 explicitly say Gmail modification tools such as labeling, archiving, and marking-as-read are not available and that the user must manage the inbox manually. But L181-L182 then instruct the agent to apply a label, mark the email as read, and archive it, which directly contradicts the preceding documentation about available capabilities.

Static analysis

No suspicious patterns detected.