BETA Shoulder is in beta — Findings may sometimes be wrong. Your feedback shapes what we fix next. Share feedback
📜

Improper Certificate Validation

🛡️ 4 rules detect this

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.

Prevalence
Medium
3 languages covered
Impact
High
4 high-severity rules
Prevention
Documented
4 fix examples
2 Prevention
2 Prevention

How to fix this vulnerability

Prevention strategies for Improper Certificate Validation based on 4 Shoulder detection rules.

Insecure TLS/SSL Configuration HIGH

Use TLS 1.2+ minimum version and always verify certificates

+2 -1 go
  client := &http.Client{
      Transport: &http.Transport{
          TLSClientConfig: &tls.Config{
-             InsecureSkipVerify: true,
+             MinVersion:         tls.VersionTLS12,
+             InsecureSkipVerify: false,
          },
      },
  }
  
Insecure TLS/SSL Configuration HIGH

Keep certificate verification enabled and enforce TLS 1.2 or higher

+2 -1 javascript
  const agent = new https.Agent({
-   rejectUnauthorized: false
+   rejectUnauthorized: true,
+   minVersion: 'TLSv1.2'
  });
  
SSL/TLS Certificate Validation Disabled HIGH

Keep SSL certificate verification enabled; use custom CA bundles for internal certs

+5 -1 python
  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')
  
SSL/TLS Certificate Verification Disabled HIGH

Keep SSL verification enabled (the default) or use custom CA bundles

+5 -1 python
  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')
  
3 Detection
3 Detection

Find vulnerabilities in your code

Use Shoulder to scan your codebase for Improper Certificate Validation patterns. 4 rules.

terminal
# Scan with Shoulder CLI
npx @shoulderdev/cli trust --cwe=295

# Or scan entire project
npx @shoulderdev/cli trust .

Detection Rules (4)

4 Warning Signs
4 Warning Signs

What to watch for in code reviews

These patterns indicate potential Improper Certificate Validation vulnerabilities. Look for these during code reviews and security audits.

🟠
TLS configuration disables security features or uses weak settings go-insecure-tls-config
🟠
insecure TLS/SSL configurations in Node javascript-insecure-tls-config
🟠
disabled SSL/TLS certificate validation python-certificate-validation-bypass
🔍

Scan your codebase for Improper Certificate Validation

Shoulder CLI finds vulnerable patterns across your entire codebase.