Back to skill

Security audit

kibana

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Kibana integration that can make powerful changes, but it requires user approval for writes and its remaining risk is mainly normal installation and credential-handling caution.

Install only if you intend to let Maton mediate access to your Kibana instance. Use OAuth and least-privilege, preferably non-production Kibana permissions for exploratory work, confirm every write or connector execution, and consider pinning or isolating the Maton CLI/SDK installation to reduce supply-chain exposure.

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:38
Finding
Unpinned Third-Party CLI and SDK Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:38-42`, `SKILL.md:697`, and `SKILL.md:711` **Vulnerability Type**: Supply-chain exposure through unpinned dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:38` ```bash npm install -g @maton/cli ``` `SKILL.md:42` ```bash brew install maton-ai/cli/maton ``` `SKILL.md:697` ```bash pip install maton-ai ``` `SKILL.md:711` ```bash npm install @maton/sdk ``` ### Technical Analysis The installation instructions do not pin the Maton CLI or SDK packages to reviewed versions and do not specify integrity hashes. Consequently, executing these commands resolves mutable package versions from third-party package registries or a Homebrew tap at installation time. The global NPM installation is especially sensitive because package lifecycle scripts and installed binaries execute with the privileges of the user performing the installation. The Python and JavaScript SDK instructions have similar supply-chain exposure when used without lockfiles, hashes, or exact versions. This does not establish that the named packages are currently malicious. The weakness is that the code executed by users can change after the Skill has been reviewed. A compromised publisher account, registry, package release, or Homebrew tap could therefore introduce attacker-controlled code without any corresponding change to `SKILL.md`. The separately flagged transmission of `MATON_API_KEY` to `https://api.maton.ai` is not treated as a vulnerability. It is disclosed authentication behavior necessary for the optional raw HTTP fallback, is restricted to the declared gateway host, and is accompanied by instructions against printing, persisting, or passing the key through command-line arguments. ### Attack Path 1. An attacker compromises a package publisher account, package registry entry, release pipeline, or the referenced Homebrew tap. 2. The attacker publishes a malicious new version under one of the trusted dependen ...[truncated 1626 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every package to an explicitly reviewed version, for example: - `npm install -g @maton/cli@<reviewed-version>` - `pip install maton-ai==<reviewed-version>` - `npm install @maton/sdk@<reviewed-version>` 2. Provide integrity verification: - Use NPM lockfiles with verified integrity metadata for project-local dependencies. - Use `pip --require-hashes` with a fully hashed requirements file. - Publish and verify checksums or signatures for CLI binaries. - Pin the Homebrew formula or documented release rather than implicitly accepting the latest tap state. 3. Prefer project-local or isolated installation over global installation: - Use a dedicated virtual environment for Python. - Install JavaScript dependencies locally with a committed lockfile. - Run the CLI in a restricted environment where practical. 4. Disable unnecessary package installation scripts or inspect them before execution where package-manager support permits. 5. Document the expected package registry, publisher identity, package namespace, and verified release provenance to reduce dependency-confusion and typosquatting risks. 6. Establish a controlled upgrade process in which new versions are reviewed and tested before the pinned version and integrity metadata are updated. 7. Continue using least-privilege Kibana connections so compromise of a dependency does not automatically grant administrative or production-wide access. ]]>
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.