Back to skill

Security audit

Curl Http

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward curl command reference that does not install or run hidden code, but users should be careful with credentials, uploads, traces, and TLS bypass examples.

Install only if you want a curl cheat sheet. Avoid copying examples with real passwords, API keys, cookies, or files without adapting them safely; prefer authorization headers or protected config files, do not put API keys in URLs, avoid curl -k except in controlled testing, and treat verbose or trace output as sensitive.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:90
Finding
Credentials Exposed Through Command-Line Arguments and URL Query Parameters## Vulnerability Details **File Location**: `SKILL.md:90`, `SKILL.md:101`, and `SKILL.md:142` **Vulnerability Type**: Insecure credential handling **Risk Level**: Medium ### Vulnerable Code ```bash # Basic auth curl -u username:password https://api.example.com ``` ```bash # API key in URL curl "https://api.example.com?api_key=your_key" ``` ```bash # With proxy authentication curl -x http://proxy:8080 -U user:pass https://api.example.com ``` ### Technical Analysis These examples encourage users to place account passwords, proxy credentials, and API keys directly in command-line arguments or URL query strings. Command-line secrets may be retained in shell history and can be exposed through process inspection, terminal logging, command auditing, or diagnostic tooling. API keys embedded in query strings can additionally appear in server and proxy access logs, monitoring platforms, copied URLs, and other systems that record request targets. The values shown are placeholders, and the file does not itself contain real credentials. The vulnerability arises when users replace those placeholders with production secrets and execute the documented commands. ### Attack Path 1. A user copies one of the documented commands. 2. The user replaces the placeholder with a valid password, proxy credential, or API key. 3. The command is executed and recorded in shell history, process telemetry, audit logs, or terminal logs. 4. For URL-based API keys, intermediate proxies, web servers, and monitoring systems may also record the complete URL. 5. An attacker or unauthorized operator with access to one of these records extracts the credential. 6. The attacker reuses the exposed credential against the relevant API, user account, or proxy service. ### Impact Assessment Successful exploitation can grant the attacker the same effective permissions as the exposed credential. Depending on the credential, this may include aut ...[truncated 399 chars]
Remediation
## Remediation Suggestions - Do not recommend embedding passwords or tokens literally in command-line arguments. - Remove the API-key-in-URL example and recommend an authorization header or another provider-supported protected credential mechanism. - For Basic authentication, allow curl to prompt for the password by specifying only the username, where appropriate. - Consider a protected curl configuration file or `--netrc-file` with filesystem permissions restricted to the owning user. - If environment variables are demonstrated, warn users that careless shell expansion, debugging, and process-launch patterns can still expose their values. - Add an explicit warning that secrets may be retained in shell history, process telemetry, URLs, and service logs. - Recommend short-lived, narrowly scoped credentials and immediate rotation if a secret is accidentally exposed.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:149
Finding
TLS Certificate Verification Can Be Disabled## Vulnerability Details **File Location**: `SKILL.md:149-151` **Vulnerability Type**: TLS server-authentication bypass **Risk Level**: Medium ### Vulnerable Code ```bash ### SSL/TLS ```bash # Ignore SSL certificate errors (not recommended for production) curl -k https://self-signed.example.com ``` ### Technical Analysis The `-k` option, equivalent to `--insecure`, disables TLS certificate and hostname verification. Encryption may still be negotiated, but curl no longer reliably authenticates the server. An attacker capable of intercepting network traffic can therefore present an arbitrary certificate without causing curl to reject the connection. The existing comment warns against production use, which reduces but does not eliminate the risk. Users may still copy the command as the easiest workaround for certificate errors rather than installing the correct trust anchor. ### Attack Path 1. A user encounters a certificate error and adopts the documented `curl -k` pattern. 2. The user sends credentials, files, or sensitive request data over an attacker-controlled or otherwise compromised network. 3. A man-in-the-middle attacker intercepts the connection and presents an untrusted certificate. 4. Curl accepts the certificate because verification has been disabled. 5. The attacker observes or modifies requests and responses, potentially capturing authentication material or substituting returned content. ### Impact Assessment An attacker with a suitable network interception position may read or alter HTTP traffic carried through the unauthenticated TLS connection. This can expose credentials, cookies, uploaded files, API payloads, and response data. If a user subsequently executes or trusts downloaded content, response modification could lead to broader compromise, but no automatic execution behavior is present in this project. The issue does not independently grant local privileges.
Remediation
## Remediation Suggestions - Replace the primary example with certificate validation using an appropriate trusted CA, such as `curl --cacert trusted-ca.pem https://self-signed.example.com`. - Explain how to install an internal CA into the operating system or application trust store. - Retain `-k` only as an isolated diagnostic example, accompanied by a prominent warning that it enables man-in-the-middle interception. - Explicitly advise users never to transmit credentials or sensitive data while certificate verification is disabled. - Recommend certificate and hostname correction rather than bypassing verification.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:251
Finding
Plaintext Request Traces May Persist Authentication and Sensitive Data## Vulnerability Details **File Location**: `SKILL.md:251-253` **Vulnerability Type**: Plaintext sensitive-data exposure **Risk Level**: Medium ### Vulnerable Code ```bash # Trace request curl --trace-ascii trace.txt https://api.example.com ``` ### Technical Analysis Curl tracing can record request and response headers, URLs, cookies, query parameters, and body content. For authenticated or data-bearing requests, the resulting `trace.txt` may therefore contain bearer tokens, session identifiers, personal information, API payloads, or other confidential material. The example writes this information to an ordinary plaintext file without warning about its sensitivity, setting restrictive permissions, sanitizing its contents, or deleting it after use. ### Attack Path 1. A user adapts the tracing example to diagnose an authenticated or sensitive request. 2. Curl writes request and response details to `trace.txt`. 3. The trace retains authorization headers, cookies, sensitive URL parameters, or payload data. 4. The file is exposed through permissive filesystem permissions, backups, support bundles, shared directories, or an accidental source-control commit. 5. An unauthorized party extracts credentials or confidential data from the trace. 6. If reusable credentials are present, the party uses them to impersonate the affected user or access the associated service. ### Impact Assessment The exposed information may include confidential request and response data or reusable authentication material. A stolen token or session cookie can grant the permissions associated with that credential until it expires or is revoked. The affected privilege and scope depend on the traced request and the access rights of any captured credential. The static example does not itself contain a secret and does not automatically disclose the generated file remotely.
Remediation
## Remediation Suggestions - Add a prominent warning that curl traces can contain authorization headers, cookies, URLs, and request or response bodies. - Instruct users to create trace files in a private directory with permissions restricted to the owning user. - Recommend using an securely created temporary file rather than a predictable file in the current working directory. - Require users to sanitize credentials and personal data before sharing or attaching traces to support requests. - Advise users not to commit trace files to source control and to securely delete them when troubleshooting is complete. - Recommend revoking or rotating any credential that was stored in a trace exposed to an unauthorized party. - Where supported and suitable, document trace configuration options that reduce unnecessary recorded data.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (24)

Tool Parameter Abuse

High
Category
Tool Misuse
Content
---
name: curl-http
description: Essential curl commands for HTTP requests, API testing, and file transfers.
homepage: https://curl.se/
metadata: {"clawdbot":{"emoji":"🌐","requires":{"bins":["curl"]}}}
---
Confidence
60% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Tool Parameter Abuse

High
Category
Tool Misuse
Content
**Check if URL is accessible:**
```bash
if curl -s --head --fail https://example.com > /dev/null; then
  echo "Site is up"
else
  echo "Site is down"
Confidence
60% confidence
Finding
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

External Transmission

Medium
Category
Data Exfiltration
Content
---
name: curl-http
description: Essential curl commands for HTTP requests, API testing, and file transfers.
homepage: https://curl.se/
metadata: {"clawdbot":{"emoji":"🌐","requires":{"bins":["curl"]}}}
---
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill includes POST, PUT, PATCH, DELETE, upload, and download examples that can modify remote systems or local files, but it does not clearly warn users that these commands are state-changing. In an agent skill context, users may copy commands directly, increasing the chance of accidental data modification, deletion, or unintended file transfer.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### POST requests
```bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The authentication examples show credentials and API keys directly on the command line and in URLs without warning that these values may be exposed via shell history, process listings, logs, proxies, and server access logs. URL-based API keys are especially risky because they are often recorded in more places than headers.

Missing User Warnings

Medium
Confidence
99% confidence
Finding
The example uses curl -k to disable TLS certificate verification and only notes that it is 'not recommended for production,' which understates the security risk. Disabling verification enables man-in-the-middle attacks and makes it easier to send credentials or data to an attacker-controlled endpoint.

External Transmission

Medium
Category
Data Exfiltration
Content
### Range requests
```bash
# Download specific byte range
curl -r 0-1000 https://example.com/large-file.zip

# Resume download
curl -C - -O https://example.com/large-file.zip
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
Verbose and trace examples can capture full request and response details, including Authorization headers, cookies, session tokens, request bodies, and other secrets, but the skill does not warn about this. Saving traces to files can create persistent sensitive artifacts that are later exposed or mishandled.

External Transmission

Medium
Category
Data Exfiltration
Content
**Quick JSON API test:**
```bash
curl -s https://api.github.com/users/octocat | jq '{name, bio, followers}'
```

**Download with progress bar:**
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
**Download with progress bar:**
```bash
curl -# -O https://example.com/large-file.zip
```

**POST JSON and extract field:**
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.