T09 · Insecure Skill Coding Practices
- Location
SKILL.md:326- Finding
Verbose curl output can disclose the Monet API bearer token in SKILL.md
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent Monet image-generation API skill, but users should treat prompts, uploaded files, and the API key as sensitive.
Install only if you are comfortable sending prompts, reference image URLs, and any uploaded image files to monet.vision under your Monet account. Remove the -v flag from the upload example, avoid putting sensitive files or secrets in prompts, and keep MONET_API_KEY out of logs and shared transcripts.
SKILL.md:326Verbose curl output can disclose the Monet API bearer token in SKILL.md
README.md:176Verbose curl output can disclose the Monet API bearer token in README.md
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST https://monet.vision/api/v1/tasks/async \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MONET_API_KEY" \
-d '{
The README instructs users to upload a local file to a remote API but does not clearly warn that local file contents will be transmitted off-device to a third-party service. In an agent skill context, this is security-relevant because agents may handle sensitive local images or documents, and users may not realize the privacy and data-handling implications.
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.
Upload a file to get an online access URL.
📁 File Storage: Uploaded files are stored for 24 hours and will be automatically deleted after expiration.
curl -X POST https://monet.vision/api/v1/files \
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.
Upload a file to get an online access URL.
📁 File Storage: Uploaded files are stored for 24 hours and will be automatically deleted after expiration.
curl -X POST https://monet.vision/api/v1/files \
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
const response = await fetch('https://monet.vision/api/v1/tasks/async', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
const response = await fetch('https://monet.vision/api/v1/tasks/async', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
const response = await fetch('https://monet.vision/api/v1/tasks/async', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
This example sends prompts and authentication credentials to an external service, which is an external data transmission path. While expected for an API integration skill, it is still security-relevant because prompts, reference image URLs, and task metadata may contain sensitive information and the skill does not emphasize consent, minimization, or data classification before sending them off-system.
curl -X POST https://monet.vision/api/v1/tasks/async \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MONET_API_KEY" \
-d '{
This second API example repeats the same external transmission behavior in the formal API reference, reinforcing a workflow where user-provided content is sent to a third-party endpoint. The danger is contextual rather than inherently malicious: an agent following the documentation could transmit sensitive prompts or image references externally without sufficient user awareness.
Request:
curl -X POST https://monet.vision/api/v1/tasks/async \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MONET_API_KEY" \
-d '{
The skill explicitly instructs users to upload local image files to a third-party API but does not clearly warn that those files leave the local system, are stored remotely, and may contain sensitive personal or proprietary content. In an agent context, this omission can cause unintended exfiltration of user data because operators may treat file uploads as routine without understanding the privacy consequences.
No suspicious patterns detected.