Improper Certificate Validation
The product does not validate, or incorrectly validates, a certificate.
When a certificate is invalid or malicious, it might allow an attacker to spoof a trusted entity by interfering in the communication path between the host and client.
How to fix this vulnerability
Prevention strategies for Improper Certificate Validation based on 4 Shoulder detection rules.
Use TLS 1.2+ minimum version and always verify certificates
client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, + MinVersion: tls.VersionTLS12, + InsecureSkipVerify: false, }, }, }
Keep certificate verification enabled and enforce TLS 1.2 or higher
const agent = new https.Agent({ - rejectUnauthorized: false + rejectUnauthorized: true, + minVersion: 'TLSv1.2' });
Keep SSL certificate verification enabled; use custom CA bundles for internal certs
import requests - response = requests.get('https://api.example.com', verify=False) + # Default verification (recommended) + response = requests.get('https://api.example.com') + + # Custom CA for internal services + response = requests.get('https://internal.example.com', verify='/path/to/ca-bundle.crt')
Keep SSL verification enabled (the default) or use custom CA bundles
import requests - response = requests.get(url, verify=False) + # Default: verify=True + response = requests.get(url, verify=True, timeout=10) + + # For custom CA certificates: + response = requests.get(url, verify='/path/to/ca-bundle.crt')
Find vulnerabilities in your code
Use Shoulder to scan your codebase for Improper Certificate Validation patterns. 4 rules.
# Scan with Shoulder CLI npx @shoulderdev/cli trust --cwe=295 # Or scan entire project npx @shoulderdev/cli trust .
Detection Rules (4)
What to watch for in code reviews
These patterns indicate potential Improper Certificate Validation vulnerabilities. Look for these during code reviews and security audits.
Scan your codebase for Improper Certificate Validation
Shoulder CLI finds vulnerable patterns across your entire codebase.