T09 · Insecure Skill Coding Practices
- Location
scripts/send_agreement.py:216- Finding
Unvalidated Service Endpoints Can Expose Agreements and Bearer Credentials
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it advertises, but it handles sensitive agreements in ways that need review before use.
Review before installing or using this skill with real agreements. Use only approved HTTPS NanoPDF and DocuSign endpoints, prefer draft mode with `--status created`, manually verify signer-to-tab mappings, and keep the output directory out of shared folders or repositories because it may contain complete agreements and signer information.
scripts/send_agreement.py:216Unvalidated Service Endpoints Can Expose Agreements and Bearer Credentials
scripts/send_agreement.py:266Complete Agreement and Signer PII Are Persisted in Plaintext Debug Artifacts
scripts/send_agreement.py:117Ambiguous Signature Blocks Can Be Assigned and Sent Without Confirmation
The skill invokes a Python script that reads files, writes audit outputs, consumes environment secrets, and makes outbound API calls, but the manifest declares no explicit tool scope or permission boundaries. This creates an authorization gap where an agent may run with broader-than-expected capabilities, increasing the chance of unintended file access, secret exposure, or network misuse if the skill is invoked in a permissive runtime.
The documented request contract sends the entire PDF as base64 to an external NanoPDF endpoint, but the skill documentation provides no warning that potentially sensitive agreement contents and signatures are being disclosed to another service. In this skill context, agreements commonly contain legal, financial, and personal data, so omission of disclosure, minimization, or trust-boundary guidance creates a real confidentiality and compliance risk.
The script sends the entire agreement PDF to NanoPDF and then sends the document plus signer names/emails to DocuSign, which exposes potentially sensitive contractual and personal data to third-party services. In this skill context that behavior is expected for functionality, but the lack of any explicit consent, warning, or data-handling controls increases the risk of unintentional disclosure, misuse of production data, or violating privacy/compliance expectations.
The script writes NanoPDF signature block output, the full DocuSign payload containing base64-encoded document content and signer details, and the envelope response to disk in a predictable output directory. Those artifacts can persist sensitive agreements, coordinates, signer PII, and API workflow metadata beyond the immediate run, increasing exposure through local compromise, backups, shared workspaces, or accidental check-in.