Back to skill

Security audit

Todozi - Your Ai Task Manager

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Todozi task-manager integration, but it needs review because it can send API credentials and task data to a configurable server and exposes destructive, bulk, and webhook operations without clear safety prompts.

Review this skill before installing. Use it only with a Todozi API key you are comfortable granting to the configured endpoint, avoid setting TODOZI_BASE unless you trust the destination, and require explicit confirmation before delete, bulk, webhook, or preference/learned_context operations.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/todozi.py:150
Finding

API Credentials Can Be Redirected to an Arbitrary Server

Content
View full analysis
Dict: """Make async HTTP request.""" url = f"{self.base_url}/{endpoint}" ``` ### Technical Analysis The client permits its API destination to be supplied through either the `base_url` constructor argument or the `TODOZI_BASE` environment variable. The selected value is not validated before the client attaches the Todozi API key to every request through the `x-api-key` header. There is no enforcement of HTTPS, no trusted-host allowlist, and no requirement for explicit authorization before credentials are sent to a host other than the official `todozi.com` service. Consequently, configuration influence can be converted directly into credential disclosure. This issue does not independently provide a mechanism for modifying the environment or constructor arguments. Exploitation requires an attacker to influence process configuration, deployment settings, or calling code. ### Attack Path 1. The attacker gains the ability to influence `TODOZI_BASE` or the `base_url` argument, such as through a compromised deployment configuration, wrapper application, or environment-injection weakness. 2. The attacker sets the value to a server they control, for example `https://attacker.example/api`. 3. A user or agent invokes any Todozi operation. 4. `_request()` constructs the ...[truncated 922 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Warning
Location
scripts/todozi.py:591
Finding

Stored Remote Content Is Returned Directly to the Agent Context

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • 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
Findings (14)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api_reference.md (reported line 97)May include surrounding context.

Delete Matrix

bash
DELETE /api/matrix/:id

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api_reference.md (reported line 170)May include surrounding context.

Delete Item

bash
DELETE /api/item/:id

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

POST /api/bulk/delete can remove multiple items at once, increasing the potential impact of mistakes, yet the documentation contains no caution about irreversible data loss. This omission is especially important for bulk operations because they can affect many records in a single request.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api_reference.md (reported line 285)May include surrounding context.

Delete Webhook

bash
DELETE /api/webhook/:id

Webhook Events

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill documents network access and use of environment-provided API credentials, but it does not declare any explicit tool scope such as permissions or allowed-tools. That creates a governance gap where an agent or platform may grant broader capabilities than intended, making secret access and outbound API calls less transparent and harder to constrain.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill prominently exposes delete_item, delete_matrix, and bulk_delete operations without warning that they are irreversible or should require explicit user confirmation. In an agent context, this increases the chance of accidental or prompt-induced mass deletion of user data, especially because bulk operations amplify the blast radius.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The webhook and register examples encourage sending events to arbitrary external URLs but omit any warning that task metadata or system events may be transmitted off-platform. In agent use, this can enable unintended data exfiltration or privacy violations if a user or prompt supplies an untrusted webhook destination.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file documents delete operations for matrices without any cautionary note, confirmation guidance, or warning about permanent data loss. Under the markdown-specific SQP-2 criteria, descriptions of behaviors that can affect user data should include warnings when they enable destructive actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file documents DELETE /api/item/:id as a direct operation but provides no warning that it removes user content or whether recovery is possible. Markdown documentation that describes destructive actions should disclose data-loss risk to the user.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The client exposes remote state-changing operations such as completion and deletion without prominent user-facing warnings that they will modify or remove data in the external Todozi account. In agent workflows, insufficient disclosure around destructive actions increases the chance of unintended remote changes triggered by ambiguous prompts or over-eager automation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Updating user preferences and learned context can transmit potentially sensitive behavioral or personal information to the remote service without clear disclosure or consent language. Because 'learned_context' may contain inferred user details, undisclosed transmission is more sensitive than ordinary task synchronization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The exposed tools send user-entered task titles, descriptions, due dates, tags, and related metadata to a remote third-party API, but the tool descriptions do not clearly disclose that data leaves the local agent environment. In an agent setting, users may reasonably assume task text is handled locally unless outbound transmission is made explicit, which creates a privacy and consent risk.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest says the skill provides LangChain tools for creating matrices, tasks, goals, notes, list/search/update flows, bulk operations, and webhooks. In code, the exported TODOZI_TOOLS list only exposes task creation/listing/completion, stats, search, and matrix listing, so the implemented agent-facing behavior does not match the claimed tool scope.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

While the client code understands matrix categories internally, the exported LangChain tools only list matrices and do not let an agent create or manage categorized matrices/items across the advertised category set. This creates a semantic gap between the manifest's claimed category-oriented functionality and the actual exposed skill behavior.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.