Back to skill

Security audit

Curl Http

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward curl command reference; it has some risky examples that need care, but no hidden execution or deceptive behavior.

Install only if you want a curl reference. Treat examples as templates: do not put real secrets in command lines or URLs, do not use curl -k with credentials or production data, and confirm upload, PUT, PATCH, or DELETE requests target systems you control or are authorized to modify.

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 (2)

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, lines 90, 100–101, and 142
Vulnerability Type: Insecure credential handling
Risk Level: Medium

Vulnerable Code

bash
# Basic auth
curl -u username:password https://api.example.com

# API key in URL
curl "https://api.example.com?api_key=your_key"

# With proxy authentication
curl -x http://proxy:8080 -U user:pass https://api.example.com

Technical Analysis

The documentation encourages users to place authentication credentials directly in command-line arguments and URL query parameters. Users copying these examples and replacing the placeholders with real values may expose credentials through shell history, process inspection, terminal logging, diagnostic output, or monitoring systems.

API keys embedded in URLs have additional exposure paths, including server and reverse-proxy access logs, network monitoring systems, analytics platforms, and copied URLs. URL query parameters can also be propagated through referrer information in some workflows.

The examples contain placeholders rather than actual secrets, so the package itself does not disclose a live credential. The vulnerability arises when users follow the documented pattern with operational credentials.

Attack Path

  1. A user copies one of the documented commands.
  2. The user replaces username:password, user:pass, or your_key with a real credential.
  3. The command or URL is recorded in shell history, process telemetry, access logs, proxy logs, or terminal output.
  4. An attacker or another local, administrative, or logging-system user retrieves the exposed value.
  5. The attacker authenticates to the affected API or proxy using the recovered credential.
  6. The attacker obtains the permissions assigned to that credential; this does not independently grant privileges beyond the compromised account or token.

Impact Assessment

Successful exploitation can expose API cre ...[truncated 410 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not recommend placing literal secrets in command-line arguments or URL query parameters.

  • Prefer an authorization header populated from a protected environment variable:

    bash
    curl -H "Authorization: Bearer ${API_TOKEN}" https://api.example.com
    
  • Explain that environment variables still require careful handling and must not be printed, committed, included in diagnostic output, or exposed to untrusted child processes.

  • For reusable credentials, recommend an appropriately permission-restricted curl configuration file, .netrc file, or operating-system secret manager.

  • For interactive Basic authentication, omit the password so curl prompts for it:

    bash
    curl -u username https://api.example.com
    
  • Send API keys through service-supported authentication headers instead of query parameters.

  • Add explicit warnings about shell history, process inspection, access logs, proxy logs, and verbose output.

  • Advise users to rotate any credential that has already been entered into a command line or URL and to remove it from retained logs where operationally possible.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:149
Finding

TLS Server Certificate Verification Can Be Disabled

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 149–151
Vulnerability Type: TLS certificate verification bypass
Risk Level: Medium

Vulnerable Code

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 server certificate verification. Encryption may still be negotiated, but curl no longer reliably verifies that it is communicating with the intended server. An attacker able to intercept or redirect network traffic can therefore present an untrusted certificate without causing curl to reject the connection.

The existing comment warns against production use, but the example still establishes certificate-verification bypass as a troubleshooting pattern. Applying it to credential-bearing requests or software downloads can undermine TLS authentication.

Attack Path

  1. A user encounters a certificate validation error and applies the documented -k option to a real endpoint.
  2. An attacker with a suitable network position intercepts or redirects the connection, such as through a hostile wireless network, compromised proxy, DNS manipulation, or routing attack.
  3. The attacker presents an arbitrary certificate for an attacker-controlled endpoint.
  4. Because certificate verification is disabled, curl accepts the connection.
  5. The attacker reads submitted credentials or request data, alters responses, or substitutes downloaded content.
  6. Any subsequent processing of attacker-modified data may extend the impact, depending on how the response or downloaded file is used.

Impact Assessment

Exploitation can compromise the confidentiality and integrity of traffic sent through the affected curl request. Exposed information may include authentication tokens, passwords, cookies, API request bodies, and downloaded data. An attacker may also impersonate the des ...[truncated 232 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace the insecure example with certificate-authority configuration using --cacert:

    bash
    curl --cacert trusted-ca.pem https://self-signed.example.com
    
  • For private services, install the organization’s CA certificate into the appropriate trusted certificate store rather than bypassing verification.

  • Verify that the requested hostname is included in the server certificate and correct DNS or certificate issuance problems at their source.

  • If -k is retained for narrowly scoped diagnostics, state prominently that it must not be used with credentials, confidential data, production endpoints, or downloaded executable content.

  • Ensure scripts fail closed on certificate errors and do not silently retry with --insecure.

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

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
94% confidence
Finding

The file upload examples transmit local files to remote services but do not warn that sensitive local content may be exfiltrated if users substitute real filenames or endpoints. In an automation setting, this can lead to accidental disclosure of documents, keys, or internal data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill includes PUT, PATCH, and DELETE examples that modify or remove remote resources but does not warn users that these requests are state-changing and can affect real systems. In an agent context, copy-pasted examples can be executed against production endpoints, causing unintended data loss or changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The authentication section shows credentials, bearer tokens, and API keys on the command line and in URLs without warning that these values may be exposed through shell history, process listings, logs, proxies, and server access logs. URL-based API keys are especially risky because they propagate widely in telemetry and referrer data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The TLS section includes curl -k, which disables certificate validation, with only a weak note that it is not recommended for production. This can normalize insecure use and enable man-in-the-middle attacks or acceptance of spoofed endpoints when copied into real workflows.

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

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.