Museum Data Manager

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.

What this means

If the agent runs the wrong SQL, it could modify, delete, or expose museum database records.

Why it was flagged

The custom query command sends the agent-supplied SQL directly to MySQL with no read-only restriction, allowlist, or confirmation step.

Skill content
result = run_sql(args.sql)
Recommendation

Make the default query mode read-only, require explicit user approval for write/delete/schema statements, and provide safer scoped commands for updates.

What this means

A crafted museum name, status, or location value could change the intended database query and potentially expose or alter data.

Why it was flagged

User-controlled CLI arguments are interpolated directly into SQL strings, creating SQL-injection risk if untrusted text is passed as a filter or lookup value.

Skill content
where_clauses.append(f"location LIKE '%{args.location}%'")
Recommendation

Use parameterized SQL or strict validation/escaping for all structured command arguments.

What this means

Using an over-privileged account could let accidental or malicious prompts cause permanent database changes.

Why it was flagged

The documentation recommends write/delete or full database privileges. Combined with unrestricted SQL execution, this grants the agent high-impact authority over the database.

Skill content
Ensure your MySQL user has: SELECT, INSERT, UPDATE, DELETE on the database - Or full privileges: `GRANT ALL ON museumcheck.* TO 'user'@'%';`
Recommendation

Use a least-privilege MySQL account, preferably read-only unless a task explicitly requires writes, and avoid granting ALL privileges to this skill.

What this means

Other local users or monitoring tools might be able to see the database password while the command is running.

Why it was flagged

The MySQL password is passed to the mycli subprocess as a command-line argument, which can expose it locally through process inspection on some systems.

Skill content
'-p', DB_CONFIG['password'],
Recommendation

Avoid passing passwords on the command line; use a secure MySQL client configuration file, prompt-based authentication, or another credential mechanism with appropriate file permissions.

What this means

The skill may fail or may use whichever mycli binary is found on the system PATH, so users need to trust that local executable.

Why it was flagged

The code depends on an external mycli executable, while the supplied registry requirements say no binaries are required.

Skill content
paths = ['mycli', f'{home}/Library/Python/3.11/bin/mycli', f'{home}/.local/bin/mycli', '/usr/local/bin/mycli', '/usr/bin/mycli']
Recommendation

Declare mycli as a required dependency and install or verify it from a trusted source before use.