fix(ConnectionHandler): Replace closeNotify alert with handshake failure alert in TLS ClientHello handling to properly signal missing SNI and enforce session ticket restrictions.
This commit is contained in:
		| @@ -1,5 +1,11 @@ | |||||||
| # Changelog | # Changelog | ||||||
|  |  | ||||||
|  | ## 2025-03-16 - 4.1.9 - fix(ConnectionHandler) | ||||||
|  | Replace closeNotify alert with handshake failure alert in TLS ClientHello handling to properly signal missing SNI and enforce session ticket restrictions. | ||||||
|  |  | ||||||
|  | - Switched alert data sent on missing SNI from closeNotifyAlert to sslHandshakeFailureAlertData. | ||||||
|  | - Ensures consistent TLS alert behavior during handshake failure. | ||||||
|  |  | ||||||
| ## 2025-03-16 - 4.1.8 - fix(ConnectionHandler/tls) | ## 2025-03-16 - 4.1.8 - fix(ConnectionHandler/tls) | ||||||
| Change the TLS alert sent when a ClientHello lacks SNI: use the close_notify alert instead of handshake_failure to prompt immediate retry with SNI. | Change the TLS alert sent when a ClientHello lacks SNI: use the close_notify alert instead of handshake_failure to prompt immediate retry with SNI. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ | |||||||
|  */ |  */ | ||||||
| export const commitinfo = { | export const commitinfo = { | ||||||
|   name: '@push.rocks/smartproxy', |   name: '@push.rocks/smartproxy', | ||||||
|   version: '4.1.8', |   version: '4.1.9', | ||||||
|   description: 'A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.' |   description: 'A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.' | ||||||
| } | } | ||||||
|   | |||||||
| @@ -608,7 +608,7 @@ export class ConnectionHandler { | |||||||
|             try { |             try { | ||||||
|               // Use cork/uncork to ensure the alert is sent as a single packet |               // Use cork/uncork to ensure the alert is sent as a single packet | ||||||
|               socket.cork(); |               socket.cork(); | ||||||
|               const writeSuccessful = socket.write(closeNotifyAlert); |               const writeSuccessful = socket.write(serverNameUnknownAlertData); | ||||||
|               socket.uncork(); |               socket.uncork(); | ||||||
|  |  | ||||||
|               // Function to handle the clean socket termination |               // Function to handle the clean socket termination | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user