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.
If the agent passes attacker-controlled or specially crafted search/filter text, code could run on the local environment where the skill executes.
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.
python3 -c "import urllib.parse; print(urllib.parse.quote('$SEARCH'))" ... python3 -c "import urllib.parse; print(urllib.parse.quote('$FILTER'))"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.
The skill can access and change Vikunja data allowed by the provided token.
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.
AUTH="Authorization: Bearer ${VIKUNJA_TOKEN}"; RESPONSE=$(api_put "projects/${PID}/tasks" "$BODY"); RESPONSE=$(api_post "tasks/${ID}" '{"done": true}')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.
Users may not realize from the registry metadata that they must provide a token and have local command-line tools available.
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.
Required binaries (all must exist): none; Required env vars: none; Primary credential: none
Declare the required environment variables, credential, and runtime tools in metadata so users can review the access and dependencies before installation.
If configured, the agent will periodically query Vikunja and send task information to the chosen Telegram channel.
The documentation suggests an optional scheduled job that continues checking tasks and delivering notifications after setup.
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
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.
