T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:5- Finding
Mutable External Executable Is Downloaded and Run Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:5
Vulnerability Type: Unverified remote payload retrieval and supply-chain risk
Risk Level: HighVulnerable Code Snippet:
yaml metadata: {"openclaw":{"homepage":"https://github.com/elliottzheng/ppt2fig","skillKey":"ppt2fig-export","always":true,"os":["win32"],"install":[{"id":"ppt2fig-cli-win64","kind":"download","os":["win32"],"url":"https://github.com/elliottzheng/ppt2fig/releases/latest/download/ppt2fig-cli.exe","targetDir":"~/.openclaw/tools/ppt2fig-export","label":"Download ppt2fig CLI for Windows"}]}}Technical Analysis
The installation configuration downloads a native Windows executable from the external, mutable
latestGitHub release URL. The Skill does not pin a release version, specify a cryptographic checksum, or require verification of a trusted publisher signature.Consequently, the code that is eventually executed can change after the Skill has been reviewed. HTTPS protects the download in transit but does not protect against compromise of the publisher account, repository, release workflow, or upstream asset. Because the downloaded object is a native executable, a compromised release can run arbitrary code rather than being limited to presentation conversion.
Downloading a converter is relevant to the declared functionality, but accepting an unpinned executable without integrity validation exceeds the minimum safe trust required to implement that functionality.
Attack Path
- An attacker compromises the upstream repository owner, release workflow, token, or GitHub account.
- The attacker publishes or replaces
ppt2fig-cli.exein the release targeted by the mutablelatestURL. - OpenClaw installs the executable into
~/.openclaw/tools/ppt2fig-export. - The helper script identifies that executable as its first candidate.
- A normal presentation-conversion request executes the attacker-controlled binary.
- The binar ...[truncated 781 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the mutable
latestURL with an immutable, explicitly versioned release URL. - Record an audited SHA-256 or stronger digest in the Skill and verify it before installation or execution.
- Require a valid Windows Authenticode signature from an explicitly trusted publisher where available.
- Fail closed if the hash, signature, expected filename, or version does not match.
- Perform release upgrades through explicit reviewed changes rather than automatically following
latest. - Prefer installation through a trusted package repository with provenance and reproducible-build metadata.
- Execute the converter with only the filesystem and network access required for conversion, ideally in a sandbox without credentials or unrestricted outbound network access.
- Replace the mutable
