Back to skill

Security audit

Daily-to-Goal MCP

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Daily-to-Goal integration, but it asks users to run an unpinned remote MCP package with an API key and exposes live write, delete, and approval actions with broad activation wording.

Install only if you trust the Daily-to-Goal MCP package source. Pin a reviewed package version, use a dedicated least-privilege API key, store the key outside committed config, and require explicit confirmation before delete, approve, or other state-changing actions.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:28
Finding
Unpinned Remote npm Package Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 28–39 **Vulnerability Type**: Unpinned third-party dependency executed through `npx` **Risk Level**: Medium ### Vulnerable Code ```json { "mcpServers": { "daily-to-goal": { "command": "npx", "args": ["@daily-to-goal/mcp-server"], "env": { "DTG_API_KEY": "dtg_live_your_key_here" } } } } ``` ### Technical Analysis The configuration directs the MCP host to resolve and execute `@daily-to-goal/mcp-server` through `npx` without specifying an exact package version or integrity hash. The package implementation is not included in the audited project, so its behavior cannot be verified from the available source. Because package resolution occurs against an external registry, the code eventually executed can change after this skill has been reviewed. A compromised publisher account, package takeover, or malicious future release could place attacker-controlled code in the MCP server process. That process is explicitly provided with `DTG_API_KEY` and runs with the local privileges of the user launching the MCP host. This finding concerns the unsafe dependency execution mechanism. The audit did not establish that the current npm package version is malicious. ### Attack Path 1. An attacker compromises the npm publisher account, takes control of the package, or otherwise causes a malicious release of `@daily-to-goal/mcp-server` to be published. 2. A user applies the documented configuration and starts the MCP integration. 3. `npx` resolves the unpinned package version from the external npm registry. 4. The downloaded package executes locally as the MCP server. 5. The malicious package reads `DTG_API_KEY` from its process environment. 6. It exfiltrates the credential or uses it to invoke Daily-to-Goal operations allowed by the key's scopes and the associated account role. 7. Because it is native code execution through Node.js, it may also access local resources avai ...[truncated 835 chars]
Remediation
## Remediation Suggestions 1. Pin the MCP package to a reviewed, exact version rather than resolving the latest available release: ```json { "mcpServers": { "daily-to-goal": { "command": "npx", "args": ["--yes", "@daily-to-goal/mcp-server@1.2.3"], "env": { "DTG_API_KEY": "${DTG_API_KEY}" } } } } ``` 2. Verify the package's official name, publisher identity, repository, release provenance, and integrity before installation. 3. Prefer a controlled installation governed by a lockfile and package-integrity metadata instead of downloading the dependency dynamically on every invocation. 4. Review new releases before updating the pinned version. Use automated supply-chain scanning and monitor publisher or ownership changes. 5. Run the MCP server in a sandbox or restricted account with minimal filesystem, environment, and network access. 6. Provision a dedicated API key with only the scopes necessary for the intended operations. Avoid broad write or administrative permissions when read-only access is sufficient. 7. Store the real API key in an environment variable or secrets manager, never directly in a committed configuration file. 8. Rotate and revoke the credential promptly if dependency compromise is suspected. 9. Add the referenced `references/security.md` document or remove the broken reference so users can access the promised security guidance.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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)

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger guidance is broad enough to match generic phrases like "create a task" or "manage my goals," which can cause the skill to activate when a user did not specifically intend to use the D2G integration. Because this skill exposes write-capable tools, unintended invocation could lead to accidental access to business data or creation/modification of goals, tasks, or entities in the user's tenant.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill advertises multiple destructive and approval-capable operations, including deleting goals/entities and approving tasks, but does not prominently warn users that these actions can change or remove live tenant data. In a business productivity context, the absence of explicit warnings and confirmation expectations increases the risk of accidental destructive actions and privilege misuse through normal-language requests.

Static analysis

No suspicious patterns detected.