Back to skill

Security audit

Gitlab Workflow

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent GitLab workflow helper, but it needs review because it combines GitLab write authority, local repository shell commands, and an unpinned third-party plugin.

Install only if you are comfortable granting the MorphixAI integration access to your GitLab account and allowing the agent to run local git commands for selected repositories. Use least-privilege GitLab permissions, prefer a pinned or reviewed plugin version if available, and require explicit approval before actions that approve, merge, retry pipelines, or change MR and issue state.

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:17
Finding
Unpinned Installation of a Privileged Third-Party Plugin<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:17` **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code Snippet ```bash openclaw plugins install openclaw-morphixai ``` ### Technical Analysis The skill instructs users to install `openclaw-morphixai` without specifying a reviewed version, cryptographic digest, or other integrity constraint. Consequently, the package resolved at installation time can differ from the version originally reviewed. This dependency is security-sensitive because the skill requires `MORPHIXAI_API_KEY`, links a GitLab account through MorphixAI, and uses the installed integration to perform GitLab operations. A malicious or compromised future package release could therefore execute with access to the credentials and GitLab permissions available to the integration. The issue is a supply-chain risk rather than evidence that the current plugin is malicious. Exploitation depends on compromise or unauthorized replacement of the package, publisher account, registry entry, or distribution channel. ### Attack Path 1. An attacker compromises the plugin publisher, package registry, release process, or another component of the distribution chain. 2. The attacker publishes a modified release under the expected `openclaw-morphixai` package name. 3. A user follows the skill instructions and runs the unversioned installation command. 4. The package manager resolves and installs the attacker-controlled release. 5. When the plugin is loaded or invoked, it operates in a context where `MORPHIXAI_API_KEY` is required and a GitLab account may be linked. 6. The malicious plugin can attempt to capture accessible credentials, inspect GitLab data, or invoke operations permitted by the linked account. ### Impact Assessment Successful exploitation could expose the MorphixAI API key and GitLab information accessible through the linked account, including project metadata, source-cod ...[truncated 434 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the plugin to an explicitly reviewed version rather than installing the latest available release: ```bash openclaw plugins install openclaw-morphixai@&lt;reviewed-version&gt; ``` 2. If supported by the package manager, pin and verify a cryptographic digest or lockfile entry so the installed artifact is immutable. 3. Document the expected registry, publisher identity, package signature, and artifact checksum. 4. Review new plugin releases before updating the pinned version. 5. Grant the linked GitLab account only the minimum scopes and project permissions required for the requested workflow. 6. Separate read-only review access from approval, pipeline retry, and merge permissions where possible. 7. Require explicit user confirmation immediately before privileged operations such as approving or merging a merge request. 8. Rotate `MORPHIXAI_API_KEY` and revoke linked-account authorization if dependency compromise is suspected. 9. Avoid exposing unrelated environment variables, credentials, or filesystem locations to the plugin runtime. ]]>
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)

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The manifest description and main heading/body are written as mandatory Chinese-facing instructions, with no indication that another language can be used or that the user may choose a locale. This can violate a language/locale policy when a skill effectively constrains interaction language without explicit opt-in or justification.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
The skill expands from GitLab API usage into local shell execution and filesystem discovery (`nodes.run`, `find`, `cd`, `git fetch`, `git diff`), which materially broadens its authority from remote project operations to local host access. In an adversarial or multi-repo environment, this can expose local repository contents, metadata, branch names, or developer credentials/config context, and it bypasses the stated safety boundary of accessing GitLab only through the MorphixAI proxy.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
Lines L223-L234 present manual status verification as mandatory before merging, while L244 states the merge action already performs the check and does not require a manual pre-check. These instructions actively contradict each other and could mislead an agent about the intended safe merge procedure.

Static analysis

No suspicious patterns detected.