T09 · Insecure Skill Coding Practices
- Location
scripts/export_dashboard.py:91- Finding
Path Traversal and Unsafe Temporary File Creation in Dashboard Export
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent for Kibana saved-object management, but it includes destructive Kibana operations, cleartext HTTP defaults, and unsafe local export file handling that warrant review before installation.
Use this only in a controlled Kibana environment. Prefer HTTPS, review or patch the export filename handling before using untrusted dashboard IDs or endpoints, and require explicit backup and confirmation before delete or overwrite imports.
scripts/export_dashboard.py:91Path Traversal and Unsafe Temporary File Creation in Dashboard Export
SKILL.md:12Cleartext HTTP Used for Kibana Saved Objects Operations
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
DELETE /api/saved_objects/<type>/<id>
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
### Corrupted saved objects (404 on GET but appears in list)
**Fix:**
1. Delete the corrupted object: `DELETE /api/saved_objects/<type>/<id>`
2. Recreate with proper data
The skill documents network and likely file-writing/import capabilities but does not declare any explicit tool scope, permissions, or allowed-tools boundaries. In an agent setting, this can enable broader-than-necessary access and makes it harder to enforce least privilege for destructive API calls and NDJSON import/export workflows.
The skill includes a delete endpoint for saved objects without an explicit warning that deletion may be permanent and may break dependent dashboards or references. In this context, omission of safety guidance increases the chance of accidental destructive actions by an automated agent or operator.
The import example uses overwrite=true, which can replace existing saved objects, but the skill does not prominently warn that this is destructive. An agent or user following the instructions could unintentionally overwrite dashboards, visualizations, or dependencies, causing configuration loss or service disruption.
The module docstring states it exports a dashboard and its dependencies, which implies dependency closure. In code, it fetches one dashboard, reads its immediate references, and exports only those objects; it does not recursively resolve dependencies of referenced objects, so the documentation overstates what the script actually does.
The manifest describes REST API operations for creating, updating, deleting, importing, exporting, and managing saved objects in Kibana. This script additionally persists the exported data to /tmp on the local filesystem, which is not mentioned in the skill description and goes beyond pure API-based management behavior.
No suspicious patterns detected.