Back to skill

Security audit

reducto

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Reducto document-processing integration with clearly warned automation features and credential-handling limits.

Before installing, confirm you are comfortable using Maton as a gateway to Reducto and sending selected documents or document URLs to Reducto for processing. Treat functions, triggers, destinations, and `--exec` event watching as advanced automation: use them only after reviewing the exact code, destination, data flow, persistence, and account connection involved. Prefer OAuth, avoid exposing API keys, and install the pinned CLI/SDK packages in the least-privileged environment you can.

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:31
Finding
Third-Party Package Installation Without Artifact Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:31-46`, `SKILL.md:1315`, and `SKILL.md:1330` **Vulnerability Type**: Supply-chain exposure through executable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown ## Installation ### NPM ```bash npm install -g @maton/cli@0.3.1 ``` ### Homebrew ```bash brew install maton-ai/cli/maton brew pin maton ``` ``` The optional SDK installation instructions introduce the same dependency trust boundary: ```bash pip install 'maton-ai==0.3.1' ``` ```bash npm install @maton/sdk@0.3.1 ``` ### Technical Analysis The Skill directs the agent or user to install executable packages from npm, PyPI, and a vendor-controlled Homebrew tap. Package installation can execute package-controlled lifecycle hooks, build scripts, and binaries with the privileges of the invoking user. The global npm installation has a wider system impact than a project-local or isolated installation. The dependencies are version-pinned, which limits unexpected upgrades and is preferable to unconstrained installation. However, version pinning alone does not authenticate package contents or protect against: - Compromise of a package registry account or vendor-controlled tap. - Replacement or mutation of published artifacts. - A malicious or compromised transitive dependency. - Installation of an artifact whose source and build provenance have not been independently verified. - Package lifecycle scripts executing during installation. The audit found no evidence that the named packages are currently malicious, and no remote shell pipeline such as `curl | sh` is present. This finding concerns the unverified supply-chain execution boundary created by the documented installation process. ### Attack Path 1. An attacker compromises the publisher account, package release process, package registry entry, Homebrew tap, or a transitive dependency. 2. The attacker publishes or substitutes a malicious artifact under a p ...[truncated 1419 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Publish SHA-256 hashes or signed checksums for each reviewed CLI and SDK artifact, and verify them before installation. 2. Provide package-signing or provenance verification instructions, such as Sigstore attestations or an equivalent trusted release-signing mechanism. 3. Prefer project-local or isolated installations over global installation: - Use a dedicated Python virtual environment. - Use a locked npm project or isolated package execution environment. - Avoid administrative privileges. 4. Commit lockfiles containing resolved transitive dependencies and integrity metadata for SDK examples intended for application use. 5. Audit package lifecycle scripts and document whether installation can safely use options that disable unnecessary scripts. 6. Pin the Homebrew formula to an immutable, reviewed revision where feasible rather than relying only on `brew pin` after retrieving the formula from a mutable tap. 7. Document the verified publisher identities and official registry/tap URLs so users can detect typosquatting or dependency confusion. 8. Perform dependency vulnerability and provenance scanning for every release, and require explicit review before changing pinned versions. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
Documenting `maton trigger event watch --exec` introduces local code execution on untrusted event payloads, which is a qualitatively different and much riskier capability than document processing. The skill itself warns about the danger, but including an execution pathway in this skill can still lead an agent to create or run local handlers, turning attacker-controlled event data into a route for command injection, unsafe automation, or unintended persistent actions.

Intent-Code Divergence

Medium
Confidence
84% confidence
Finding
The manifest says Reducto is not an event source and that triggers cannot read Reducto data, yet the skill still includes extensive trigger destination and automation instructions. That mismatch is dangerous because it normalizes persistent forwarding and automation machinery within a skill whose declared purpose is document processing, increasing the chance an agent over-uses unrelated egress features or misinterprets them as endorsed parts of the Reducto workflow.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The skill is nominally for Reducto document processing, but it embeds broad function and trigger management guidance that materially expands what an agent could be induced to do, including deploying hosted code and configuring automations. Even though the text includes safety caveats, exposing these unrelated capabilities inside the same skill increases attack surface and creates a capability-confusion risk where untrusted document/task content could steer an agent into higher-risk actions outside the core integration.

Static analysis

No suspicious patterns detected.