Back to skill

Security audit

Cronjob

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local note logger presented as a cron-management and monitoring tool, which could mislead users about whether real cron jobs are being checked, fixed, backed up, or restored.

Install only if you want a simple local note-taking tool for cron-related events. Do not rely on it to inspect, add, monitor, fix, back up, or restore actual cron jobs, and avoid recording secrets, credentials, sensitive paths, or incident details you would not want stored in plaintext or exported to CSV.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:76
Finding

Spreadsheet Formula Injection in CSV Export

Content
View full analysis
"$out" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do echo "$name,$ts,$val" >> "$out" done < "$f" done ;; ``` ### Technical Analysis The CSV exporter writes log values directly into comma-separated cells without quoting fields, escaping embedded quotation marks, or neutralizing spreadsheet formula prefixes. An attacker-controlled value beginning with characters interpreted as formulas by spreadsheet applications—commonly `=`, `+`, `-`, or `@`—will be preserved in the generated CSV. If a user opens that export in compatible spreadsheet software, the value may be evaluated as a formula rather than displayed as text. The implementation also fails to quote values containing commas, quotation marks, or line breaks, allowing malformed records and manipulation of the apparent CSV column structure. ### Attack Path 1. An attacker supplies or causes an operator to record a crafted value, such as a value beginning with a spreadsheet formula marker. 2. The value is stored unchanged in one of the files under `~/.local/share/cronjob/`. 3. The operator runs `cronjob export csv`. 4. The `_export` function copies the crafted value directly into `export.csv`. 5. The operator opens the exported file in spreadsheet software. 6. The spreadsheet may evaluate the attacker-controlled cell as a formula. ### Impact Assessment Successful exploitation is limited to the context in which the generated CSV is opened. Depending on the spreadsheet application and its security configuration, a malicious formula could: - Trigger external network requests ...[truncated 502 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/script.sh:6
Finding

Operational Logs Created Without Explicitly Restrictive Permissions

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` ### Technical Analysis The script creates its storage directory and log files without setting a restrictive `umask` or explicitly assigning secure permissions. Consequently, the effective permissions depend on the environment from which the script is invoked. The history and category logs may contain operationally sensitive information, including job names, filesystem paths, failure details, backup events, restoration events, and remediation notes. Under a permissive `umask`, newly created files may be readable by other local accounts. Although the documentation supports a `CRONJOB_DIR` setting, the implementation uses a fixed path under `HOME`; therefore, this finding concerns the default local storage used by the actual script. ### Attack Path 1. The script is run in an environment with a permissive `umask`. 2. The script creates `~/.local/share/cronjob/` and its log files without explicit permission restrictions. 3. An operator records operational information through commands such as `alert`, `backup`, `restore`, `fix`, or `log`. 4. The information is written to category logs and `history.log`. 5. Another local account with filesystem access reads the files if the resulting directory and file modes permit it. ### Impact Assessment Exploitation does not provide code execution or elevated privileges. A successful local attacker may obtain read access to operational metadata exposed by permissive filesystem modes. The affected scope is limited to information written into the CronJob data directory. Potentially exposed data includes scheduled-job names, incident descriptions, backup status, local paths, failure messages, and ...[truncated 131 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill markets itself as managing cron jobs and tracking execution/failures, but the documented behavior is only generic local text logging and export/search of those logs. This mismatch can mislead users into trusting the tool for operational monitoring or administration it does not actually perform, creating security and reliability gaps such as missed failed jobs, false assurance, and accidental storage of sensitive operational notes.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script's advertised purpose is cron management and execution/failure tracking, but the implementation only stores arbitrary user-supplied text in local files and prints summaries over those files. This deceptive mismatch can cause operators or downstream agents to believe cron jobs are being monitored or managed when no real checks, scheduling, or remediation occur, creating a dangerous false sense of security around operational tasks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill persists arbitrary user-provided inputs into local plain-text files and supports exporting them, but the user-facing description does not prominently warn about this data retention behavior. In a cron/admin context, users may log job names, paths, errors, hostnames, credentials, or incident details, leading to unintended local disclosure, propagation into export files, and long-lived sensitive artifacts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script persistently stores raw user input under ~/.local/share/cronjob across many commands without warning, minimization, or retention controls. In this skill context, users may paste cron contents, hostnames, paths, credentials, incident details, or other sensitive operational data, which can then remain locally exposed to other processes or users depending on system configuration.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Commands named fix, cleanup, backup, and restore strongly imply that operational actions will be performed, but they merely append user input to log files. In an automation or sysadmin context, this can mislead users into thinking maintenance or recovery occurred, delaying incident response or leaving systems unprotected.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.