Back to skill

Security audit

Tmpfiles Upload

Security checks for vulnerabilities and agentic risk

Overview

This skill clearly does what it says: uploads selected files to a temporary public file host, but users should avoid sensitive files.

Install only if you want an agent to help upload user-selected files to tmpfiles.org. Confirm the exact file path before upload, do not use it for confidential documents or private screenshots, and remember that anyone with the link may access the file until it expires.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This code performs external transmission of a local file to tmpfiles.org via HTTPS. While the network call itself is expected for the skill's purpose, it is still a real security concern because it can exfiltrate local data to a third-party service outside the primary platform's control.

Content

Scanner excerpt · SKILL.md (reported line 27)May include surrounding context.

md
def upload_to_tmpfiles(file_path):
    """Upload file to tmpfiles.org and return download URL"""
    with open(file_path, 'rb') as f:
        r = requests.post('https://tmpfiles.org/api/v1/upload', files={'file': f})
        data = r.json()
        if data.get('status') == 'success':
            # Replace org/ with org/dl/ for direct download

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly instructs uploading arbitrary local files to a third-party public file-hosting service and then sharing the resulting link, but the point-of-use example does not require an explicit user consent or warning before transmission. This is dangerous because users or agents may send screenshots, documents, or other local files off-platform to a publicly accessible service, creating confidentiality and data-handling risks.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The shell example again uploads a local file to tmpfiles.org, demonstrating a direct path for sending local content to an external public service. In context, this increases risk because the example is easy to copy and use without any built-in approval, classification, or redaction safeguards.

Content

Scanner excerpt · SKILL.md (reported line 47)May include surrounding context.

md
python3 -c "
import requests
with open('/path/to/file.png', 'rb') as f:
    r = requests.post('https://tmpfiles.org/api/v1/upload', files={'file': f})
    d = r.json()
    if d.get('status') == 'success':
        print(d['data']['url'].replace('org/', 'org/dl/'))

Static analysis

No suspicious patterns detected.