Skip to content

Fix #21004: Enforce TLS 1.2 as minimum for shell HTTP client#21347

Open
R-Panic wants to merge 2 commits intosmartcontractkit:developfrom
R-Panic:feature/issue-21004
Open

Fix #21004: Enforce TLS 1.2 as minimum for shell HTTP client#21347
R-Panic wants to merge 2 commits intosmartcontractkit:developfrom
R-Panic:feature/issue-21004

Conversation

@R-Panic
Copy link

@R-Panic R-Panic commented Feb 28, 2026

Fixes #21004

Summary

Updated newHttpClient to explicitly enforce TLS 1.2 as the minimum supported version, ensuring a consistent and secure communication baseline.

Changes

  • Added MinVersion: tls.VersionTLS12 to TLSClientConfig in newHttpClient function
  • This prevents downgrade attacks and protects against known vulnerabilities in older TLS protocols (TLS 1.0 and 1.1)
  • Maintains backward compatibility with all secure TLS 1.2+ connections
  • Does not affect the InsecureSkipVerify flag behavior for testing scenarios

Security Impact

By enforcing TLS 1.2 as the minimum version, the shell HTTP client:

  • Prevents protocol downgrade attacks
  • Disallows weak cipher suites from TLS 1.0/1.1
  • Aligns with modern security best practices
  • Maintains compatibility with all currently supported major HTTP services

Testing

No functional changes to existing behavior - only affects handshake negotiation to reject insecure TLS versions.

- Added MinVersion: tls.VersionTLS12 to TLSClientConfig in newHttpClient
- Protects against downgrade attacks and vulnerabilities in TLS 1.0/1.1
- Maintains backward compatibility with secure TLS 1.2+ connections
- Does not affect InsecureSkipVerify flag behavior

Fixes smartcontractkit#21004
jmank88
jmank88 previously approved these changes Mar 1, 2026
@Moses-main
Copy link

Hi team,

I'll help enforce TLS 1.2 as minimum for the HTTP client. This is an important security hardening fix.

Let me know if I can proceed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Enforce TLS 1.2 as minimum for shell HTTP client

3 participants