T09 · Insecure Skill Coding Practices
- Location
scripts/kya_receipt.py:157- Finding
Unauthenticated control evidence can be converted into a signed authorization receipt
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent and not deceptive, but its bundled receipt issuer can sign financial authorization receipts from unverified approval evidence, so it needs careful review before use.
Install only as a design and testing aid. Do not use the bundled Python receipt issuer as a production authorization service unless evidence verification, approver independence, caller authentication, KMS/HSM signing, and strict permission boundaries are added outside the agent.
scripts/kya_receipt.py:157Unauthenticated control evidence can be converted into a signed authorization receipt
scripts/kya_receipt.py:176Independent human approval does not enforce approver independence or authority
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Test audit completeness against `templates/audit-log-schema.json`. Protect event integrity with canonicalization, an append-only destination, access control, retention rules, and a managed signature or timestamping mechanism. A local hash chain alone does not prove immutability.
Do not store full identity documents, raw biometrics, full account numbers, passwords, access tokens, secrets, or private keys in action intents, receipts, or audit logs.
The skill references environment variables and local file reads/writes (for example, setting KYA_RECEIPT_SECRET, reading templates/resources/examples, and writing receipt.json and a nonce DB) but does not declare an explicit tool/permission scope. That creates an authorization ambiguity where an agent or runtime may grant broader filesystem or environment access than reviewers expect, which is especially sensitive in a regulated-finance workflow handling approval receipts and audit artifacts.
This JSON file is within the manifest-file scope for vague-trigger review, but it contains only structural data definitions and no explicit activation phrases, contexts, or exclusion conditions. If this file is used as part of skill registration or invocation metadata, the absence of any trigger specification leaves the activation boundary undefined.