Back to skill

Security audit

Session Log Analyzer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a log reporting tool, but it asks users to set up persistent daily execution that can repeatedly process session logs and upload reports to Notion without enough scoping or removal guidance.

Review this skill carefully before installing. Only enable the daily cron workflow if you are comfortable with unattended processing of session logs and recurring uploads to Notion. Run it under an unprivileged account, review or redact logs before syncing, pin and audit dependencies where possible, and make sure you know how to inspect and remove the crontab entry.

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:62
Finding

Persistent Daily Cron Task Registration

Content
View full analysis
/dev/null; echo "0 2 * * * /root/.openclaw/workspace/tmux_scripts/daily-log-report.sh >> /root/.openclaw/workspace/pdfs/daily_report.log 2>&1") | crontab - ``` Or simply start the dev tmux session — the cron job is registered automatically: ```bash ./tmux_scripts/start_dev_session.sh ``` ### Technical Analysis The documented setup modifies the current account's crontab to execute `daily-log-report.sh` every day at 2:00 AM. This creates cross-session persistence and is not required for the Skill's core manual log-analysis functionality. The cron entry invokes a script from a workspace path without documenting integrity checks, restrictive ownership requirements, duplicate-entry prevention, or an uninstall procedure. If an unauthorized party can replace or modify the referenced script, their commands will execute automatically with the privileges of the account that owns the crontab. The hardcoded `/root/.openclaw/...` paths indicate that the documented deployment expects access to the root user's workspace. The command itself modifies the invoking user's crontab, so root execution is not guaranteed; however, if setup is performed as root, the scheduled script will run with root privileges. The referenced `start_dev_session.sh` file is absent from the audited package, so its claimed automatic registration behavior and any associated safeguards cannot be verified. ### Attack Path 1. A user follows the documented cron setup or starts the development tmux session that is claimed to register the task automatically. 2. A persistent cron entry is created under the invoking account. 3. An attacker or compromised process obtains write access to `/root/.openclaw/workspace/tmux_scripts/daily-log-report.sh` or replaces a com ...[truncated 1010 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:12
Finding

Unpinned Third-Party Package and Skill Dependencies

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

YARA rule 'backdoor_persistence': Backdoor persistence with malicious payloads (shell commands, SSH key injection, hidden root users) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

d scripts && python3 sync_to_notion.py

text

### Daily Automated Report

The daily report pipeline is managed by `tmux_scripts/daily-log-report.sh`. It:

1. Runs `analyze_logs.py` to generate a dated PDF report
2. Syncs the PDF to Notion via `sync_to_notion.py`
3. Logs all output for debugging

To set up the cron schedule inside your tmux session:

```bash
# Add to crontab (runs at 2:00 AM daily)
(crontab -l 2>/dev/null; echo "0 2 * * * /root/.openclaw/workspace/tmux_scripts/daily-log-report.sh >> /root/.openclaw/workspace/pdfs/daily_report.log 2>&1") | crontab -

Or simply start the dev tmux session — the cron job is registered automatically:

bash
./tmux_scripts/start_dev_session.sh

Environment Variables

VariableRequiredDescription
NOTION_API_KEYYes (for Notion sync)Notion integration API key
NOTION_REPORTS_DB_IDYes (for Notion sync)Notion database ID for reports

File Structure

text
scripts/analyze_logs.py       —

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly describes automatic generation of PDF reports from session logs and syncing them to Notion, but it does not warn that session logs may contain sensitive or confidential data that will be exported to a third-party service. In this context, omission of the disclosure increases the risk of accidental data exfiltration during normal use, especially because the feature is presented as a convenience workflow.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The documentation instructs users to install a cron job and states that starting the dev tmux session registers it automatically, but it does not clearly warn that this creates persistent scheduled execution and ongoing background processing. That omission can lead users to unknowingly leave unattended tasks running, with repeated access to logs and recurring external uploads.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
88% confidence
Finding

The documented command adds a cron entry, which establishes persistence by causing code to execute automatically every day. While cron itself is not inherently malicious and the stated purpose is reporting automation, persistent execution is security-relevant because it continuously processes logs and may repeatedly upload derived data without interactive review.

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

bash
# Add to crontab (runs at 2:00 AM daily)
(crontab -l 2>/dev/null; echo "0 2 * * * /root/.openclaw/workspace/tmux_scripts/daily-log-report.sh >> /root/.openclaw/workspace/pdfs/daily_report.log 2>&1") | crontab -

Or simply start the dev tmux session — the cron job is registered automatically:

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

Most of the file is written in English, but the version 1.2.1 changelog entry is presented only in Chinese. This creates an implicit language inconsistency without user opt-in or justification, which can violate language/locale expectations for skill documentation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The changelog entry at L08 is written in Chinese, while surrounding metadata and prior history entries are in English. This creates an implicit language/locale inconsistency in user-facing natural language without any indication that the user can choose the language or that the skill is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The history entry at L21 repeats the Chinese-only changelog text in an otherwise English metadata file. This may violate language/locale expectations because the file does not explain the locale policy or offer an opt-in language selection.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.