Back to skill

Security audit

Openclaw Version

Security checks for vulnerabilities and agentic risk

Overview

This skill is a clearly disclosed aviation web-scraping and report-generation helper, with optional scheduled collection that users should configure carefully.

Before installing, review the cron examples carefully. Only enable scheduled runs you actually want, use a dedicated output directory, check for overwrites or accumulated reports, and prefer installing optional Python packages in a virtual environment with pinned versions.

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
README_OpenClaw.md:27
Finding

Unpinned Third-Party Python Dependencies

Content
View full analysis

Vulnerability Details

File Location: README_OpenClaw.md, lines 27-34
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

markdown
## 필수 요구사항

- **python3** (스크립트 실행에 필요)
- 선택: `openpyxl` (Excel 생성), `python-docx` (Word 생성), `reportlab` (PDF 생성)

```bash
pip install openpyxl python-docx reportlab
text

### Technical Analysis

The installation command retrieves three third-party packages without specifying reviewed versions, cryptographic hashes, a lockfile, or an isolated Python environment. Dependency resolution therefore relies on the mutable state of the configured package index at installation time.

Although the documented package names are established projects and no malicious package is directly identified, the installation procedure does not ensure that users receive the same audited artifacts. A compromised package release, compromised package-index account, unsafe transitive dependency, or maliciously configured package source could result in unintended code being installed. Python packages may execute build-system or installation-related code, and subsequently execute package code when imported.

### Attack Path

1. An attacker compromises a named dependency, one of its transitive dependencies, its publishing account, or a package source configured in the victim's environment.
2. The attacker publishes a malicious release that remains compatible with unconstrained dependency resolution.
3. A user follows the documentation and runs:
   ```bash
   pip install openpyxl python-docx reportlab
   ```
4. `pip` resolves and downloads the attacker-controlled or compromised release because no version or artifact hash is enforced.
5. Malicious code may run during package building or installation, or later when the Skill imports and uses the installed package.

### Impact Assessment

Successful exploitation could execute code with the pr
...[truncated 566 chars]
Remediation
View remediation

Remediation Suggestions

  1. Define reviewed, exact dependency versions in a requirements file:
    text
    openpyxl==<reviewed-version>
    python-docx==<reviewed-version>
    reportlab==<reviewed-version>
    
  2. Generate and verify SHA-256 hashes for every direct and transitive dependency, then require them during installation:
    bash
    python3 -m pip install --require-hashes -r requirements.txt
    
  3. Commit the reviewed requirements or lock file to the Skill package so installations are reproducible.
  4. Recommend installation in a dedicated virtual environment rather than the global Python environment:
    bash
    python3 -m venv .venv
    . .venv/bin/activate
    python3 -m pip install --require-hashes -r requirements.txt
    
  5. Document the expected package index and advise users not to install from untrusted mirrors or additional indexes.
  6. Periodically audit pinned dependencies for known vulnerabilities and update versions and hashes through a controlled review process.
  7. Avoid running dependency installation as root or with administrator privileges.
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 (6)

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README_OpenClaw.md (reported line 20)May include surrounding context.

OpenClaw용 SKILL.md를 사용하려면:

bash
# OpenClaw 버전의 SKILL.md로 교체
cp openclaw-version/SKILL.md ~/.openclaw/skills/aviation-web-scraper/SKILL.md

방법 2: ClawHub 등록 (커뮤니티 공유)

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

The README encourages persistent unattended execution via cron of prompts that perform web collection and write outputs, but provides no safety guidance on output paths, overwrite behavior, retention, rate limiting, or review controls. In an agentic environment, recurring autonomous runs can amplify mistakes, continuously fetch/process untrusted remote content, and accumulate sensitive or incorrect artifacts without user awareness.

Content

Scanner excerpt · README_OpenClaw.md (reported line 51)May include surrounding context.

정기 수집 설정 (cron 활용)

bash
# crontab -e 로 편집
# 매주 월요일 오전 9시: FAA/ICAO 안전 정보 수집
0 9 * * 1 openclaw run "FAA와 ICAO의 이번 주 항공 안전 정보를 수집하고 마크다운 보고서로 만들어줘. aviation-data/에 JSON 저장."

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The scheduling section describes cron-based and recurring collection without clearly warning that enabling it will trigger ongoing automated network access and repeated file writes. That is dangerous because users may unintentionally create persistent background activity, accumulate stored data over time, or violate operational expectations for a one-time task.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document forces a specific language presentation for installation and usage instructions, with no opt-in or mention of available language alternatives. The policy calls for flagging language or locale constraints when they are imposed without user choice or clear justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file documents cron-based unattended execution and explicitly mentions saving output to files, but it does not warn that scheduled runs can continuously create or overwrite local artifacts. For markdown files, omissions about behaviors affecting user data or system state should be flagged when no user warning is present.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly instructs saving scraped collections and generated reports into local directories, but it does not warn the user that running it will create or modify files on disk. This can lead to unexpected local state changes, overwriting prior outputs, or leaving behind sensitive scraped data and reports, especially when users assume the skill is read-only.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.