T09 · Insecure Skill Coding Practices
- Location
SKILL.md:129- Finding
TLS Certificate Verification Is Disabled by Default
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:129-133
Vulnerability Type: Insecure TLS configuration
Risk Level: MediumVulnerable code snippet:
markdown | `cookies` | object map | No | - | Cookie key/value pairs | | `headers` | object map | No | - | Header key/value pairs | | `only_main_content` | boolean | No | `true` | Return main content only | | `block_ads` | boolean | No | `true` | Attempt to block ad resources | | `skip_tls_verification` | boolean | No | `true` | Skip TLS verification |Technical Analysis
The documented default for
request.skip_tls_verificationistrue. The request examples omit this field, so requests may inherit the insecure default. Disabling certificate validation prevents the crawler from authenticating the target HTTPS server and makes crawler-to-target connections vulnerable to man-in-the-middle attacks.This risk is amplified because the same request configuration accepts arbitrary cookies and headers. If a user submits session cookies, authorization headers, or other target credentials for an authenticated crawl, those values may be transmitted over a connection whose peer certificate is not validated.
Transmission of the XCrawl API key to
https://run.xcrawl.comis not itself classified as a vulnerability: it is necessary for the declared hosted API functionality and is directed only to the documented provider endpoint.Attack Path
- A user configures a crawl of an HTTPS target, potentially including authentication cookies or custom headers.
- The generated request omits
request.skip_tls_verification, as shown in the Skill examples. - The XCrawl service applies the documented default value of
true. - An attacker able to intercept or redirect traffic between the crawler and target presents an invalid or attacker-controlled TLS certificate.
- The crawler accepts the certificate because verification is disabled.
- The attacker can ...[truncated 707 chars]
- Remediation
View remediation
Remediation Suggestions
- Change the API default for
request.skip_tls_verificationtofalse, if the provider controls that behavior. - Explicitly include
"skip_tls_verification": falsein every cURL, Node.js, and workflow example rather than relying on an upstream default. - Permit disabling verification only after explicit user confirmation for a specific known target, with a warning that credentials and response integrity may be exposed.
- Reject or prominently warn against combining disabled TLS verification with cookies, authorization headers, or other sensitive request values.
- Add a guardrail requiring certificate verification for normal crawls and document narrowly scoped exceptions for development systems using private certificates.
- Prefer configuring a trusted private certificate authority for internal targets instead of bypassing certificate validation.
- Change the API default for
