T09 · Insecure Skill Coding Practices
- Location
lazaretto-verify.mjs:98- Finding
API credentials and inline scan content can be sent to an attacker-controlled endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent security-checking skill, but it has review-worthy risks around configurable API endpoints, API-key forwarding, inline file upload, and weak local verification boundaries.
Install only if you are comfortable with scans contacting a remote service. Avoid setting LAZARETTO_API or using --api unless you fully trust that exact endpoint, do not pass an API key to custom endpoints, and treat inline scans as uploading the selected file. Use the verify command as a helpful signal, not a byte-perfect guarantee, especially for binary files or directories that may contain symlinks.
lazaretto-verify.mjs:98API credentials and inline scan content can be sent to an attacker-controlled endpoint
lazaretto-verify.mjs:39Lossy UTF-8 conversion prevents byte-accurate artifact verification
lazaretto-verify.mjs:53Directory verification follows untrusted symbolic links outside the artifact tree
Referenced artifact was not completely inspected
you can audit it in full (`lazaretto-verify.mjs` is dependency-free Node built-ins
The top-level documentation says the skill 'touches no credentials beyond an optional API key you pass it,' implying configuration is provided explicitly by the caller. However, the code also reads process.env.LAZARETTO_API to source the API endpoint, which is an additional environment access not described by the comment. This is a mild but real documentation-to-code divergence.