Back to skill

Security audit

marsbit-news-skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent MarsBit news integration, with clear external endpoint use and no artifact-backed signs of hidden execution, credential use, or malicious persistence.

This skill sends MarsBit news requests, including any search terms or item IDs, to a hosted MarsBit endpoint. Avoid putting secrets or sensitive personal information in queries. Prefer the ClawHub install path; if using the GitHub fallback, review the repository contents and pin or verify the exact version before copying it into your skills directory.

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:143
Finding
Unpinned Remote Repository Used as an Installation Source## Vulnerability Details **File Location**: `SKILL.md:143-157` and `README.md:45-51` **Vulnerability Type**: Supply-chain exposure through an unpinned remote installation source **Risk Level**: Medium ### Vulnerable Code `SKILL.md:143-157`: ```markdown ## Install from GitHub You can install this skill directly from GitHub when ClawHub is unavailable (for example, rate-limit errors). Repository: - `https://github.com/domilin/marsbit-news-skill` Example local install: ```bash git clone https://github.com/domilin/marsbit-news-skill /tmp/marsbit-news-skill mkdir -p ~/.openclaw/skills/opennews cp -R /tmp/marsbit-news-skill/openclaw-skill/opennews/* ~/.openclaw/skills/opennews/ openclaw skills list ``` ``` `README.md:45-51`: ```markdown ### 2) Install from GitHub ```bash git clone https://github.com/domilin/marsbit-news-skill /tmp/marsbit-news-skill mkdir -p ~/.openclaw/skills/opennews cp -R /tmp/marsbit-news-skill/openclaw-skill/opennews/* ~/.openclaw/skills/opennews/ openclaw skills list ``` ``` ### Technical Analysis The documented fallback installation process clones the mutable default branch of a remote GitHub repository and immediately copies its contents into the user's OpenClaw skill directory. It does not pin a reviewed commit hash or immutable release, and it performs no checksum, signature, or file-content verification. Consequently, the effective installed skill can differ from the artifact reviewed during this audit. If the repository, maintainer account, or default branch is compromised, an attacker could modify skill instructions or introduce additional files before a user performs the installation. This is an insecure supply-chain practice rather than evidence that the currently audited repository contains malicious code. ### Attack Path 1. An attacker compromises the upstream GitHub repository, a maintainer account, or another mechanism capable of modifying its defa ...[truncated 1168 chars]
Remediation
## Remediation Suggestions 1. Pin installation to a reviewed full commit hash or an immutable signed release rather than the repository's default branch. 2. Publish a SHA-256 digest for each released skill artifact and require verification before installation. 3. Sign releases or commits using a verifiable maintainer key and document signature verification steps. 4. Review the checked-out file list before copying it into the OpenClaw skill directory. 5. Avoid recursively copying arbitrary repository content. Install only an explicit allowlist of expected files. 6. Use a freshly created temporary directory and remove it after installation to avoid stale or attacker-prepositioned content. 7. Prefer a trusted package registry or release artifact with integrity metadata. A hardened installation flow should resemble: ```bash git clone https://github.com/domilin/marsbit-news-skill /tmp/marsbit-news-skill cd /tmp/marsbit-news-skill git checkout --detach FULL_REVIEWED_COMMIT_HASH test "$(git rev-parse HEAD)" = "FULL_REVIEWED_COMMIT_HASH" sha256sum --check published-checksums.txt mkdir -p ~/.openclaw/skills/opennews cp openclaw-skill/opennews/SKILL.md ~/.openclaw/skills/opennews/ cp openclaw-skill/opennews/package.json ~/.openclaw/skills/opennews/ ``` The checksum manifest itself should be obtained through a signed, independently verifiable release channel.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Session Persistence

Medium
Category
Rogue Agent
Content
```bash
git clone https://github.com/domilin/marsbit-news-skill /tmp/marsbit-news-skill
mkdir -p ~/.openclaw/skills/opennews
cp -R /tmp/marsbit-news-skill/openclaw-skill/opennews/* ~/.openclaw/skills/opennews/
openclaw skills list
```
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Session Persistence

Medium
Category
Rogue Agent
Content
```bash
git clone https://github.com/domilin/marsbit-news-skill /tmp/marsbit-news-skill
mkdir -p ~/.openclaw/skills/opennews
cp -R /tmp/marsbit-news-skill/openclaw-skill/opennews/* ~/.openclaw/skills/opennews/
openclaw skills list
```
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

External Transmission

Medium
Category
Data Exfiltration
Content
---
name: marsbit-opennews
description: Fetch MarsBit news and flash data through the hosted MCP route in marsbit-co. Use this for latest news, channel lookup, keyword search, detail, related news, and flash updates.
metadata: {"openclaw":{"emoji":"📰","requires":{"bins":["curl"]},"install":[{"id":"curl","kind":"brew","formula":"curl","label":"curl (HTTP client)"}],"os":["darwin","linux","win32"]},"version":"1.3.1"}
---

# MarsBit OpenNews Skill (Directly Usable)
Confidence
86% confidence
Finding
This skill is explicitly built around using curl to POST data to an external hosted MCP endpoint, so external transmission is intrinsic to its operation. While the transmission appears aligned with the stated purpose, it still creates a real data exposure surface because any user-supplied search terms or identifiers leave the local environment and are handled by a remote service.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill directs all requests to a hosted external MCP endpoint but does not clearly warn users that their prompts, search terms, and requested news identifiers will be transmitted off-box to a third-party service. This is a real transparency and privacy issue because users may assume the skill is local or first-party and disclose sensitive queries without informed consent.

Static analysis

No suspicious patterns detected.