Back to skill

Security audit

Database Toolkit

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward database utility skill, but it can change, delete, back up, and export database data, so users should treat it as powerful rather than risk-free.

Install only if you intend to let the agent work with databases. Use read-only credentials for exploration, review SQL before execution, back up important databases before writes or deletes, avoid exporting sensitive tables unless the destination is controlled, and pin dependencies if reproducible installs matter.

Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill explicitly advertises direct database maintenance, write, and backup capabilities but does not present prominent safeguards such as confirmation requirements, access restrictions, read-only defaults, or warnings about destructive/irreversible effects. In an agent context, exposing raw data modification operations through natural-language commands increases the chance of accidental or unauthorized changes, data loss, or unintended disclosure.

Missing User Warnings

Medium
Confidence
72% confidence
Finding
The JSON export routine writes full table contents to disk, which can expose sensitive database data if used on confidential tables or in shared environments. In this skill context, the helper accepts arbitrary table names and output paths, making unintentional data disclosure more plausible when integrated into agent workflows or automation.

Missing User Warnings

High
Confidence
86% confidence
Finding
The delete() method constructs SQL using interpolated table names and a caller-supplied WHERE fragment, then executes destructive operations immediately. In a skill or agent context where inputs may be influenced by untrusted data or LLM-generated strings, this can enable SQL injection or accidental full-table deletion, causing irreversible data loss.

Unbounded Resource Access

Medium
Category
Excessive Agency
Content
message = json.dumps(message)
        return self.redis.lpush(self.queue_name, message)
    
    def pop(self, blocking=False, timeout=0):
        if blocking:
            import time
            start = time.time()
Confidence
85% confidence
Finding
The queue pop method supports blocking behavior with a default timeout of 0, which causes an unbounded polling loop when blocking=True and no message arrives. In a skill or service context, an attacker or malformed workflow could trigger threads or workers to wait indefinitely, consuming execution slots and causing denial-of-service through resource exhaustion.

Unpinned Dependencies

Low
Category
Supply Chain
Content
pandas
# MySQL (optional): pymysql sqlalchemy
Confidence
95% confidence
Finding
The dependency is unpinned, so installs may resolve to different versions over time, reducing build reproducibility and potentially pulling in a newly vulnerable or incompatible release. While not an exploit by itself, this weakens supply-chain control and makes security review and incident response harder.

Static analysis

No suspicious patterns detected.