Vikunja Tasks

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

ConcernHigh Confidence
ASI05: Unexpected Code Execution
What this means

If the agent passes attacker-controlled or specially crafted search/filter text, code could run on the local environment where the skill executes.

Why it was flagged

SEARCH and FILTER are placed directly inside Python source code instead of being passed as argv or environment data. A crafted value containing a single quote can break out of the string and execute arbitrary Python code.

Skill content
python3 -c "import urllib.parse; print(urllib.parse.quote('$SEARCH'))" ... python3 -c "import urllib.parse; print(urllib.parse.quote('$FILTER'))"
Recommendation

Fix the script before use by passing values safely, for example: python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1]))' "$SEARCH". Avoid passing untrusted search/filter strings until patched.

What this means

The skill can access and change Vikunja data allowed by the provided token.

Why it was flagged

The skill uses a Vikunja bearer token for read/write API calls, including creating tasks and marking tasks complete. This is expected for the stated purpose, but it is account authority.

Skill content
AUTH="Authorization: Bearer ${VIKUNJA_TOKEN}"; RESPONSE=$(api_put "projects/${PID}/tasks" "$BODY"); RESPONSE=$(api_post "tasks/${ID}" '{"done": true}')
Recommendation

Use the least-privileged Vikunja API token available, keep it out of shared shells/logs, and revoke it if the skill is no longer needed.

What this means

Users may not realize from the registry metadata that they must provide a token and have local command-line tools available.

Why it was flagged

The registry metadata advertises no required binaries or credentials, while the provided script requires VIKUNJA_URL/VIKUNJA_TOKEN and uses local tools such as curl, jq, python3, and date. This is a disclosure/setup gap rather than hidden install code.

Skill content
Required binaries (all must exist): none; Required env vars: none; Primary credential: none
Recommendation

Declare the required environment variables, credential, and runtime tools in metadata so users can review the access and dependencies before installation.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

If configured, the agent will periodically query Vikunja and send task information to the chosen Telegram channel.

Why it was flagged

The documentation suggests an optional scheduled job that continues checking tasks and delivering notifications after setup.

Skill content
clawdbot cron add ... --message "Check Vikunja for overdue and upcoming tasks (next 24 hours). If any are found, notify me with the list." ... --deliver ... --channel telegram
Recommendation

Only add the cron job if you want proactive reminders, verify the delivery channel, and remove the cron job when it is no longer needed.