T09 · Insecure Skill Coding Practices
- Location
references/sdk-integration-java.md:259- Finding
Java SDK Example Disables TLS Certificate Verification and HTTPS
- Content
View full analysis
Vulnerability Details
File Location:
references/sdk-integration-java.md, lines 259–262
Vulnerability Type: Insecure transport configuration
Risk Level: HighVulnerable Code:
java apiClient.setVerifyingSsl(false); apiClient.setDisableSSL(true); apiClient.setHttpProxy("http://proxy:8080"); apiClient.setHttpsProxy("https://proxy:8080");Technical Analysis
The Java SDK reference presents copy-ready configuration that disables two fundamental transport protections:
setVerifyingSsl(false)disables server certificate verification, allowing a client to accept certificates from an untrusted or impersonated server.setDisableSSL(true)may downgrade SDK communication from HTTPS to plaintext HTTP.
These settings appear in a general “SSL, Proxy, Timeouts” example without a prominent warning, test-only restriction, or secure alternative. Because
SKILL.mdinstructs the agent to answer Java configuration questions directly from this reference, users may receive and copy this configuration when asking about SSL, proxies, or transport settings.The proxy declarations are not independently vulnerable, but using an HTTP proxy alongside disabled certificate verification or disabled TLS substantially increases interception risk. SDK requests may carry access-key identifiers, session tokens, signed authorization data, sensitive API parameters, and confidential responses.
Attack Path
- A user asks the Skill for Java SDK SSL, proxy, or transport configuration.
- Following
SKILL.md, the agent uses this integration reference to construct its answer. - The user copies the example, including
setVerifyingSsl(false)orsetDisableSSL(true). - The SDK communicates over an untrusted network or through a malicious or compromised proxy.
- With certificate verification disabled, an attacker presents a spoofed certificate and impersonates the API endpoint; with SSL disab ...[truncated 826 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
apiClient.setVerifyingSsl(false)andapiClient.setDisableSSL(true)from the standard example. - Make the secure defaults explicit:
- Keep HTTPS enabled.
- Keep certificate and hostname verification enabled.
- Use an HTTPS proxy where appropriate.
- For private certificate authorities, document how to configure a restricted custom trust store rather than disabling verification globally.
- If the insecure switches must be documented for diagnostics, move them to a clearly labeled test-only section and add warnings that they must never be used with production endpoints, real credentials, or sensitive data.
- Add a warning that SDK debug output and proxy infrastructure may expose sensitive headers or request data.
- Add documentation tests or security linting to reject examples that disable TLS or certificate verification unless accompanied by an explicit, prominent test-only warning.
- Remove
