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

Content
View full analysis

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
View 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

Content
View full analysis

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
View 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

Content
View full analysis

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
View 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
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).

Content

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

md
---
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"]}}}
---

Tool Parameter Abuse

High
Category
Tool Misuse
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).

Content

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

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"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
---
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"]}}}
---

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

POST requests

bash
# POST with data
curl -X POST https://api.example.com/users \
  -d "name=John&email=john@example.com"

# POST JSON data

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

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

Missing User Warnings

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Quick JSON API test:

bash
curl -s https://api.github.com/users/octocat | jq '{name, bio, followers}'

Download with progress bar:

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Download with progress bar:

bash
curl -# -O https://example.com/large-file.zip

POST JSON and extract field:

Static analysis

No suspicious patterns detected.