T09 · Insecure Skill Coding Practices
- Location
scripts/coda_cli.py:403- Finding
API Token Exposure Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Coda skill is mostly purpose-aligned, but it needs review because it can change or delete Coda data and has safety and credential-handling gaps.
Install only if you are comfortable giving the skill access to the Coda documents available to your token. Prefer CODA_API_TOKEN over --token, avoid --force unless you are deliberately automating deletion, and verify destructive or mutating commands carefully because retries may repeat some operations.
scripts/coda_cli.py:403API Token Exposure Through Command-Line Arguments
scripts/coda_cli.py:73Automatic Retries Can Duplicate Non-Idempotent API Mutations
The code is clearly a Coda API CLI and broadly aligns with the Coda resource domain, token requirement, and deletion confirmation behavior. However, the declared description overstates implemented functionality in several material areas. The code supports docs (list/get/create/delete), rows (list/insert/update/delete), and read-only listing of tables and pages. It does not implement automation triggers, publishing, permission changes, or full CRUD management for tables/pages despite the description claiming those capabilities. This is a description-to-behavior mismatch because the declared functional scope is materially broader than what the code actually does.
The skill declares access to environment variables and network-reachable API operations, but does not define any explicit tool scope such as allowed-tools or permissions. This creates an authorization and review gap: an agent may use sensitive capabilities like reading CODA_API_TOKEN and making outbound requests without clear policy constraints, increasing the chance of unintended data access or exfiltration.
The skill explicitly documents a force-delete path that bypasses confirmation for destructive operations. In an agent context, exposing an unauthenticated or loosely gated --force workflow increases the risk of irreversible deletion of docs or data due to prompt injection, user ambiguity, or autonomous execution without meaningful human verification.
python scripts/coda_cli.py automations trigger
python scripts/coda_cli.py docs delete --force
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
"""
)
parser.add_argument("--token", help="Coda API token")
parser.add_argument("--force", action="store_true", help="Skip confirmations")
subparsers = parser.add_subparsers(dest="cmd_group")
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
"""
)
parser.add_argument("--token", help="Coda API token")
parser.add_argument("--force", action="store_true", help="Skip confirmations")
subparsers = parser.add_subparsers(dest="cmd_group")
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
"""
)
parser.add_argument("--token", help="Coda API token")
parser.add_argument("--force", action="store_true", help="Skip confirmations")
subparsers = parser.add_subparsers(dest="cmd_group")
No suspicious patterns detected.