Back to skill

Security audit

Openclaw Talk Analyzer

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real AI conversation-analysis skill, but its docs point users to mutable external installs and an optional cron job that can keep analyzing sensitive conversations automatically.

Before installing, review or pin the exact Git commit or npm version and avoid global installs when possible. Do not run the cron example unless you intentionally want unattended recurring analysis, have restricted the input/output directories, and know how to remove the crontab entry. Use a local LLM or redact transcripts when they contain confidential, customer, employee, legal, medical, or regulated data.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (2)

T06 · System Persistence

Error
Location
skill.md:231
Finding
Recurring Cron Job Creates Cross-Session Persistence## Vulnerability Details **File Location**: `skill.md`, lines 231–234 **Vulnerability Type**: Scheduled-task persistence **Risk Level**: High ```bash # 定时任务分析每日会议 crontab -e 0 18 * * * /path/to/openclaw-talk batch --config daily-config.json ``` ### Technical Analysis The documentation instructs the user to modify their crontab and register `openclaw-talk` for unattended daily execution. The cron entry survives the current terminal and agent session, making it a system-persistence mechanism. Scheduling can support the optional batch-analysis workflow, but it is not required for the Skill's core conversation-analysis functionality. It therefore exceeds the minimum privileges and execution lifetime necessary for ordinary use. The instructions do not provide safeguards such as a dedicated least-privilege account, protected absolute paths, configuration integrity checks, restricted file permissions, execution logging, or an uninstall procedure. The command and configuration paths become persistent trust points. If either the executable or `daily-config.json` can later be replaced or modified, the cron daemon will execute the altered behavior automatically with the privileges of the account that owns the crontab. ### Attack Path 1. A user follows the documentation and adds the recurring cron entry. 2. The scheduled command remains active after the original Skill invocation ends. 3. An attacker or compromised dependency replaces or modifies `/path/to/openclaw-talk`, one of its dependencies, or `daily-config.json`. 4. At 18:00, cron invokes the compromised executable or configuration without requiring fresh user approval. 5. The payload runs with the privileges and file access of the crontab owner. 6. Files available to that account, including conversation records, reports, environment files, and API credentials, may be read, modified, deleted, or transmitted. ### Impact Assessment Successful exploitation permits recurring, unattended execution under the affe ...[truncated 468 chars]
Remediation
## Remediation Suggestions - Remove the cron-registration example from the default Skill workflow. - Keep scheduling explicitly optional and require informed user approval before creating a persistent task. - Prefer a user-visible scheduler or manually invoked batch command for the standard workflow. - Run scheduled analysis through a dedicated, non-privileged service account with access only to the required input and output directories. - Use canonical absolute paths for the executable and configuration file. - Make the executable and configuration files non-writable by accounts that do not administer the scheduled task. - Pin and verify the executable and dependencies before every deployment. - Restrict access to conversation files, reports, `.env` files, and API credentials. - Add audit logging, failure notifications, rate limits, and outbound-network controls. - Document how to inspect and remove the entry, such as using `crontab -l` and `crontab -e`. - Warn users not to install the task in root's crontab.

T08 · Insecure Dependencies

Warning
Location
readme.md:44
Finding
Unpinned External Code and Dependency Installation## Vulnerability Details **File Location**: `readme.md`, lines 44–52 **Vulnerability Type**: Unverified third-party dependency retrieval **Risk Level**: Medium ```bash # Clone from GitHub git clone https://github.com/ZhenRobotics/openclaw-talk-analyzer.git cd openclaw-talk-analyzer npm install # Or install from npm (after publication) npm install -g openclaw-talk-analyzer ``` ### Technical Analysis The installation instructions retrieve mutable external content without pinning a Git commit, signed release, package version, or cryptographic checksum. The audited artifact contains only documentation and does not include the advertised implementation, `package.json`, lockfile, source code, or lifecycle scripts. Consequently, the effective code installed by these commands cannot be validated from the submitted project. Running `npm install` may execute package lifecycle scripts from the primary package or its transitive dependencies. The global installation alternative increases exposure by placing the command in a broadly accessible system or user-level executable location. A repository compromise, npm account takeover, malicious package publication, dependency confusion event, or compromised transitive dependency could therefore introduce code that executes during installation or later invocation. ### Attack Path 1. A user follows the README and clones the current state of the remote repository or installs the current npm package. 2. The remote repository, npm package, or a transitive dependency is compromised or changed after this audit. 3. The fetched package contains a malicious lifecycle script, executable, or dependency. 4. `npm install` executes the lifecycle script, or the user later invokes the installed `openclaw-talk` command. 5. The malicious code runs with the privileges of the user performing the installation. 6. If the cron example is also configured, the compromised package can continue running automatically on the documented daily schedule ...[truncated 659 chars]
Remediation
## Remediation Suggestions - Include the complete implementation, package manifest, lockfile, and relevant scripts in the audited Skill artifact. - Pin the Git installation to a reviewed commit or signed release tag. - Pin the npm package to an exact reviewed version rather than installing the latest mutable release. - Publish and verify cryptographic checksums or provenance signatures for release artifacts. - Use a committed lockfile and `npm ci` to obtain reproducible dependency versions. - Use `npm ci --ignore-scripts` when lifecycle scripts are unnecessary. - If lifecycle scripts are required, document and audit each script before installation. - Avoid global installation; prefer a project-local installation under an unprivileged account. - Never recommend installation with `sudo` unless strictly required and independently reviewed. - Run dependency auditing and software-composition analysis against both direct and transitive dependencies. - Protect API credentials using restrictive permissions and a dedicated secret-management mechanism.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Credential Access

High
Category
Privilege Escalation
Content
```bash
# Copy environment template
cp .env.example .env

# Add your AI API key (choose one)
ANTHROPIC_API_KEY=your-claude-api-key
Confidence
60% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
- [ ] Install Node.js 18+ and npm
- [ ] Clone repository or install from npm
- [ ] Get API key from Claude or OpenAI
- [ ] Configure `.env` file with API key
- [ ] Try analyzing example conversation files
- [ ] Analyze your own conversation transcripts
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The README prominently encourages analysis of business conversations using Claude/OpenAI, but the privacy caveat only appears much later and is easy to miss. Because conversation transcripts may contain sensitive business, customer, or employee data, users could unintentionally send regulated or confidential content to third-party cloud AI providers without informed consent or adequate review.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly promotes third-party AI engines (Anthropic/OpenAI) for analyzing conversation content, but it does not warn users that potentially sensitive meeting, sales, or support transcripts may be transmitted to external services. In this context, the missing disclosure is material because the skill is designed for business conversations that often contain confidential, personal, or regulated data.

Session Persistence

Medium
Category
Rogue Agent
Content
### 批处理
```bash
# 定时任务分析每日会议
crontab -e
0 18 * * * /path/to/openclaw-talk batch --config daily-config.json
```
Confidence
85% 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.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The examples show writing analysis results to user-specified output files and batch report directories, but the skill does not warn that these operations may create or overwrite local files. While this is a common CLI behavior, the omission can still cause accidental disclosure or loss of existing local data, especially when reports contain sensitive conversation summaries.

Static analysis

No suspicious patterns detected.