T08 · Insecure Dependencies
- Location
SKILL.md:41- Finding
Unpinned and Unauditable Third-Party Executable Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:41,SKILL.md:47-48, andSKILL.md:157
Vulnerability Type: Supply-chain exposure through mutable, opaque dependencies
Risk Level: MediumVulnerable Code
bash docker run -p 8080:8080 vidraft/marlbash pip install marl-middleware python -m marl serve --port 8080text MARL's core engine is delivered as compiled binaries to protect proprietary technology.Technical Analysis
The installation instructions download and execute either the mutable
vidraft/marlcontainer image or the unpinnedmarl-middlewarePyPI package. Neither installation method specifies an immutable container digest, an exact package version, nor an integrity hash.Consequently, the artifact installed by a user can differ from the artifact originally reviewed. The risk is compounded by the statement that the core engine is distributed as compiled binaries and is absent from this project, preventing source-level verification of its behavior.
The documented configuration places this middleware in the complete LLM request path. After installation, OpenClaw sends its LLM prompts and related request data to the service on port 8080. This gives the externally supplied component access to potentially sensitive prompts, generated responses, and any authentication or request metadata forwarded by the client.
This finding does not establish that the current upstream package or image is malicious. It identifies an unsafe dependency acquisition and execution process whose security depends entirely on mutable, unaudited upstream artifacts.
Attack Path
- A user follows
SKILL.mdand runs the unpinneddocker runorpip installcommand. - Docker Hub, PyPI, the publisher account, or the associated release pipeline is compromised, or a later release introduces malicious behavior.
- Because no version, digest, or hash is pinned, the user's installation r ...[truncated 1184 chars]
- A user follows
- Remediation
View remediation
Remediation Suggestions
- Pin the Python dependency to a reviewed exact version rather than installing the latest release.
- Require package hashes using a locked dependency file and hash verification, such as
pip install --require-hashes. - Pin the container image by immutable digest, for example
vidraft/marl@sha256:..., after independently verifying the digest. - Publish an SBOM, signed release attestations, checksums, and reproducible build instructions for every distributed artifact.
- Make the middleware source available for audit or arrange an independent review of the compiled core.
- Run the service as a dedicated non-root user with a read-only filesystem, dropped Linux capabilities, resource limits, and no unnecessary host mounts.
- Restrict outbound network connectivity to explicitly required destinations and document precisely which prompt data or credentials may be forwarded.
- Avoid supplying unnecessary secrets through environment variables or mounted configuration files.
- Bind the service only to the interface required by the integration and enforce authentication if it can be reached by other users or systems.
- Document a release verification and update process so users can confirm provenance before replacing an audited dependency.
