watchlist
Fail
Audited by Gen Agent Trust Hub on Oct 3, 2026
Risk Level: HIGHCOMMAND_EXECUTIONDATA_EXFILTRATIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The skill is vulnerable to arbitrary command injection through unquoted shell argument interpolation.
- In
SKILL.md, the commandpython3 /Users/kikuchihiroyuki/stock-skills/.claude/skills/watchlist/scripts/manage_watchlist.py $ARGUMENTSpasses user-supplied arguments directly to a bash shell. - If an attacker provides arguments containing shell metacharacters such as
;,&&, or|, they could execute arbitrary commands on the host system. - [DATA_EXFILTRATION]: The skill's supporting script is vulnerable to path traversal attacks when accessing the file system.
- The
_path(name)function inmanage_watchlist.pyconstructs a file path by joining a base directory with a user-provided name:os.path.join(WATCHLIST_DIR, f"{name}.json"). - Because the
nameargument is not sanitized, an attacker could use parent directory sequences (e.g.,../../) to read or write JSON files outside the intendeddata/watchlistsdirectory. - [DYNAMIC_EXECUTION]: The script performs dynamic manipulation of the Python module search path.
- In
manage_watchlist.py, the codesys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", ".."))adds parent directories to the runtime path. - This technique can be used to load unauthorized local modules if the directory structure is compromised or if there are name collisions with existing libraries.
- [INDIRECT_PROMPT_INJECTION]: The skill instructions define a processing pipeline that integrates external, potentially untrusted data without sanitization.
- Ingestion points: Output from
get_context.py(referenced inSKILL.md) is integrated into the agent's response foraddandlistoperations. - Boundary markers: None. There are no delimiters or instructions provided to the agent to ignore embedded commands within the external context.
- Capability inventory: The skill has the capability to write to the file system via
_save()and execute shell commands via the definition inSKILL.md. - Sanitization: None. The skill does not describe any filtering or escaping of the content retrieved from
get_context.py.
Recommendations
- AI detected serious security threats
Audit Metadata