Back to Checks
Minimum TLS version is set to 1.2 or higher
zone_min_tls_version_secure
Service: zoneSeverity: high
OfficialBuilt-inVerified
Categories:encryption
Resource Type:Zone
Cloudflare zones are assessed for minimum TLS version configuration by checking if the version is set to at least TLS 1.2 to ensure connections use secure, modern cryptographic protocols.
Risk
Allowing legacy TLS versions (1.0, 1.1) exposes connections to known protocol vulnerabilities.
- Confidentiality: BEAST, POODLE, and weak cipher suites can be exploited for traffic decryption
- Compliance: TLS 1.0/1.1 are deprecated by PCI-DSS, NIST, and major browsers
- Integrity: downgrade attacks can force weaker encryption that is susceptible to tampering
Run this check with Prowler
Run in Prowler CloudRun
prowler cloudflare --checks zone_min_tls_version_secureRecommendation
Set minimum TLS version to 1.2 or higher.
- TLS 1.0 and 1.1 are deprecated by all major browsers and contain known vulnerabilities
- Consider setting to
TLS 1.3for environments with modern client requirements - Test client compatibility before upgrading minimum version
Remediation
Terraform
# Set minimum TLS version to 1.2 for secure connections
resource "cloudflare_zone_setting" "min_tls_version" {
zone_id = "<ZONE_ID>"
setting_id = "min_tls_version"
value = "1.2" # Critical: blocks legacy TLS 1.0/1.1 connections
}Other
1Log in to the Cloudflare dashboard and select your account and domain
2Go to SSL/TLS > Edge Certificates
3Scroll to Minimum TLS Version
4Select TLS 1.2 or TLS 1.3 from the dropdown
5Verify that your clients support the selected TLS version
Check Code
from prowler.lib.check.models import Check, CheckReportCloudflare
from prowler.providers.cloudflare.services.zone.zone_client import zone_client
class zone_min_tls_version_secure(Check):
"""Ensure that minimum TLS version is set to 1.2 or higher for Cloudflare zones.
TLS 1.0 and 1.1 have known vulnerabilities (BEAST, POODLE) and are deprecated.
Setting the minimum TLS version to 1.2 or higher ensures that only secure
cipher suites are used for encrypted connections, protecting against
downgrade attacks and known cryptographic weaknesses.
"""
def execute(self) -> list[CheckReportCloudflare]:
"""Execute the minimum TLS version check.
Iterates through all Cloudflare zones and verifies that the minimum
TLS version is configured to 1.2 or higher. The check parses the
min_tls_version setting as a float for comparison, defaulting to 0
if the value cannot be parsed.
Returns:
A list of CheckReportCloudflare objects with PASS status if the
minimum TLS version is 1.2 or higher, or FAIL status if older
TLS versions (1.0, 1.1) are still allowed.
"""
findings = []
for zone in zone_client.zones.values():
report = CheckReportCloudflare(
metadata=self.metadata(),
resource=zone,
)
current_version = zone.settings.min_tls_version or "0"
try:
current = float(current_version)
except ValueError:
current = 0
if current >= 1.2:
report.status = "PASS"
report.status_extended = f"Minimum TLS version for zone {zone.name} is set to {current_version}."
else:
report.status = "FAIL"
report.status_extended = f"Minimum TLS version for zone {zone.name} is {current_version}, below the recommended 1.2."
findings.append(report)
return findings