T08 · Insecure Dependencies
- Location
README.md:29- Finding
Inconsistent and Unpinned Package Execution Can Run an Unintended npm Package
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent with its deal.works purpose, but it exposes money-moving and agent-management tools without strong local confirmation controls, and some install docs can run the wrong or unpinned npm package.
Install only after reviewing the exact package name and pinning a trusted version. Use a dedicated, revocable, least-privilege deal.works API key, disable or avoid mutation tools you do not need, and require human confirmation before transfers, cashouts, escrow funding, agent deployment/funding, marketplace publishing, voting, deal cancellation/completion, or final vault sealing.
README.md:29Inconsistent and Unpinned Package Execution Can Run an Unintended npm Package
src/index.ts:47High-Impact Financial and Irreversible Tools Lack Local Authorization and Confirmation Controls
src/client.ts:102User-Controlled Identifiers Are Concatenated into Authenticated Request Paths
If the underlying skill package performs external web search against api.perplexity.ai while the manifest only frames the skill as deal infrastructure, reviewers and users may not anticipate third-party data egress. Undisclosed outbound access can expose prompts, deal metadata, or business-sensitive research context to an external service outside the expected deal.works domain boundary.
If the underlying skill package performs external web search against api.perplexity.ai while the manifest only frames the skill as deal infrastructure, reviewers and users may not anticipate third-party data egress. Undisclosed outbound access can expose prompts, deal metadata, or business-sensitive research context to an external service outside the expected deal.works domain boundary.
If the underlying skill package performs external web search against api.perplexity.ai while the manifest only frames the skill as deal infrastructure, reviewers and users may not anticipate third-party data egress. Undisclosed outbound access can expose prompts, deal metadata, or business-sensitive research context to an external service outside the expected deal.works domain boundary.
If the underlying skill package performs external web search against api.perplexity.ai while the manifest only frames the skill as deal infrastructure, reviewers and users may not anticipate third-party data egress. Undisclosed outbound access can expose prompts, deal metadata, or business-sensitive research context to an external service outside the expected deal.works domain boundary.
The skill exposes money-moving operations such as fund transfers and cashout as single-step tool calls with no in-code confirmation, policy gate, recipient verification, or transaction-risk interlock. In an agentic setting, a prompt-injected or mistaken workflow could trigger irreversible financial actions using the configured API key, making this especially dangerous given the skill's financial/escrow context.
The vault seal operation defaults to FINAL, and the prompt/tool description notes that final sealing is irreversible, but the code executes it directly without any confirmation or safer default. This makes accidental or adversarial triggering more dangerous because it can permanently finalize document state and interfere with later updates, dispute handling, or evidence management.
The README instructs users to execute the MCP server via npx without pinning an exact package version, which allows whatever version is current at install/run time to be fetched and executed. Because this skill exposes financial operations, escrow, cashout, publishing, and agent deployment capabilities, a compromised or malicious future package version could immediately gain access to high-impact actions and any configured API key.
The README advertises numerous high-impact tools such as fund_transfer, fund_cashout, fund_escrow, cadre_deploy, and dispute/voting functions, but does not clearly warn that these actions can move funds, deploy agents, or create irreversible business effects. In an agentic context, presenting these capabilities as ordinary tools and prompts without explicit confirmation requirements increases the risk of unsafe autonomous use, operator misunderstanding, or prompt-driven misuse.
The skill exposes access to sensitive capabilities via environment variables and networked MCP functionality, but it does not declare any explicit tool scope such as allowed-tools or permissions. That makes it harder for a host or reviewer to enforce least privilege and increases the chance an agent can invoke state-changing or data-accessing operations more broadly than intended.
The skill documents tools for fund transfers, escrow locking, cashout, voting, and agent deployment, but it does not clearly require explicit user confirmation before irreversible or state-changing actions. In an agent setting, this can lead to accidental financial loss, unauthorized on-chain or wallet operations, or unintended deployment and governance actions from ambiguous prompts.
These prompts instruct an agent to perform sensitive financial and account-affecting actions such as creating deals, checking balances, funding escrow, deploying agents, and filing disputes, but they do not include privacy warnings, transaction-risk notices, or explicit confirmation gates for irreversible/account-impacting steps. In an AI-agent context, operational prompts like this can normalize high-impact actions without adequate user awareness, increasing the risk of accidental fund movement, disclosure of financial/account data, or unintended account changes.
Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.
| Dispute filing | 4,000-5,000 | sonar-pro |
| Full lifecycle | 6,000-8,000 | sonar-reasoning-pro |
Perplexity Max subscribers: Unlimited queries. Pro subscribers: Check your quota at perplexity.ai/settings.
Agent deployment and command APIs can create, start, stop, restart, or scale remote agents with real operational and possibly financial consequences, yet the skill provides no explicit disclosure or confirmation barrier in the action path. In an autonomous-agent platform, this raises the risk of prompt-driven unintended changes, service disruption, cost escalation, or deployment of unreviewed skills.
The manifest description scopes the skill to deal infrastructure, escrow, attestations, and autonomous agents. The Academy engine adds browsing courses, enrolling in courses, and tipping course creators, which is a separate learning-platform capability not obviously required to implement that infrastructure.
The manifest describes business-domain infrastructure for deals, escrow, attestations, and agents, but does not mention environment-level credential sourcing or secret handling. This file pulls an API key directly from process.env, which is a broader host-environment access capability than the domain description alone justifies.
The bourse_publish handler performs a POST request containing the full listing payload, including description, content, price, and tags, to the remote marketplace. In this code file there is no confirmation prompt, logging, or warning comment/docstring informing users that their content will be transmitted and published externally.
This code performs a safety-relevant POST request to deploy a new agent and may also allocate funds via fundingAmount, but there is no confirmation prompt, logging, or inline user disclosure around the action. Although the tool description states it deploys an agent, the code itself provides no explicit warning about the side effects of creating resources and optionally funding them.
The cadre_command handler issues operational commands including STOP, RESTART, SCALE_UP, and SCALE_DOWN, which can affect availability or system behavior. The file contains no confirmation prompt, logging, or explicit warning near the destructive or service-impacting action, so users may not be adequately informed at execution time.
The deal_action handler performs state-changing operations including REJECT, CANCEL, COMPLETE, and ARCHIVE via a POST request, but this file provides no confirmation prompt, warning comment, or user-facing disclosure around those potentially irreversible actions. Because these operations affect deal state and may be destructive, the lack of any visible warning mechanism in the code is a safety concern under the missing-user-warnings rule.
The fund_cashout handler performs a POST to a cashout endpoint with an external destination address, which is a safety-critical and potentially irreversible transfer of assets. In this code region there is no confirmation prompt, user-visible logging, or inline warning comment/documentation describing that funds will be sent externally.
The fund_agent_fund handler sends a POST request that allocates funds to an agent's wallet, which can materially affect user balances. Although the tool description states its purpose, this execution path contains no confirmation prompt, visible disclosure, or warning about the transfer before it occurs.
The usage example instructs users to run the package directly via npx without pinning a specific version. That causes execution of whatever version is current at install time, increasing supply-chain risk if a future release is compromised, typo-squatted, or unexpectedly changed. In an MCP server context, this is more sensitive because the package exposes many tools and may handle API keys and financial/deal operations.
The client sends user-controlled query content, optional system prompts, and search filters to Perplexity's third-party API for web search and synthesis. In an agent infrastructure context, those inputs may contain sensitive business data, deal details, or internal research prompts, and this file provides no consent gate, redaction, or policy enforcement before exfiltrating that data externally.
The escrow-deal prompt explicitly instructs the agent to create a deal, fund escrow for the full amount, and create attestations without any user-facing confirmation, spending warning, or verification checkpoint. In a skill focused on deals and escrow, this is materially risky because prompt execution could drive real financial commitments based only on interpolated user input.
The deploy-agent prompt directs the system to deploy an agent and fund its wallet within a stated budget, but it does not warn the user that this creates resource and spending commitments or require an explicit approval step. Because this skill manages autonomous agents and funding, automatic progression from search to deployment to funding increases the chance of unintended spend or misuse of a malicious or incorrect skill.
Detected: suspicious.env_credential_access