Manus on OpenClaw

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: manus-openclaw-bridge Version: 1.0.2 The skill bundle contains critical shell injection vulnerabilities in 'scripts/manus_submit.sh' and 'scripts/manus_get_task.sh', where user-provided prompts and task IDs are expanded inside double-quoted strings in curl commands, potentially allowing Remote Code Execution (RCE). Furthermore, there is a significant security discrepancy: 'SKILL.md' and 'SECURITY.md' claim that all downloads are restricted to HTTPS and allowlisted hosts, but 'scripts/manus_slides_json_to_pptx.mjs' fails to implement these checks, allowing plain HTTP and arbitrary host connections. While these appear to be unintentional security flaws rather than deliberate malware, they represent a high-risk attack surface for prompt-driven exploitation.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A malicious or compromised slides JSON bundle could make the user's machine fetch unexpected external or internal URLs and potentially write/overwrite files near the chosen output path.

Why it was flagged

The slide JSON controls image URLs and slide IDs. This helper accepts non-HTTPS HTTP URLs, follows redirects without host revalidation, and writes to a path influenced by slideId, unlike the safer Python collector.

Skill content
const imgUrl = obj.images?.[slideId]; ... const client = url.startsWith('https:') ? https : http; ... const imgPath = path.join(outDir, `${String(i + 1).padStart(2, '0')}_${slideId}.png`); ... await download(imgUrl, imgPath);
Recommendation

Do not use the slide converter on untrusted JSON until it enforces HTTPS, Manus-host allowlisting, redirect revalidation, size limits, and safe filename/path sanitization.

What this means

Users may believe all downloads are constrained to safe Manus HTTPS hosts when the slide-conversion path is not.

Why it was flagged

The documentation presents a strong download-safety model, but one included downloader used by the slides workflow does not implement that model.

Skill content
SKILL.md: "Downloader accepts only HTTPS URLs from allowlisted Manus-controlled hosts." / mjs: "const client = url.startsWith('https:') ? https : http;"
Recommendation

Either update the converter to match the documented safety rules or clearly document that only the Python collector is protected and the slide converter should be treated as untrusted-input sensitive.

What this means

Anyone who can read the local config file or change the configured API base could affect or misuse Manus API access.

Why it was flagged

The skill requires a Manus API key and sends it to the configured Manus API endpoint. This is expected for the integration, but it is still delegated account authority.

Skill content
SKILL.md: "MANUS_API_KEY (required, local only, stored in ~/.config/manus-openclaw-bridge/manus.env)"; manus_submit.sh: "--header \"API_KEY: ${MANUS_API_KEY}\""
Recommendation

Use a dedicated least-privilege Manus API key, keep the config file private, and verify MANUS_API_BASE points to the official Manus endpoint.

What this means

The converter may fail or load whatever pptxgenjs version is present in the local Node environment.

Why it was flagged

The slide converter depends on an external Node package, but the artifacts provide no package manifest, lockfile, or pinned install path.

Skill content
metadata: "No install spec"; scripts/manus_slides_json_to_pptx.mjs: "import PptxGenJS from 'pptxgenjs';"
Recommendation

Add a package manifest and lockfile or document a pinned, trusted install command for pptxgenjs.