Vulnerabilidad en SSLSocket de Python Expone Datos en Conexiones Seguras

Una vulnerabilidad en el módulo SSLSocket (Capa de Sockets Segura) de Python, responsable de conexiones seguras vía SSL/TLS, destaca como un área de preocupación. Aunque Python tiene medidas sólidas de seguridad, este módulo podría presentar riesgos en la integridad y confidencialidad de los datos transmitidos.

Identificada como CVE-2023-40217 con gravedad CRÍTICA, la vulnerabilidad en el módulo SSLSocket de Python, permite a un atacante eludir el protocolo de enlace TLS (Transport Layer Security) e inyectar datos maliciosos en una conexión segura.

Esta vulnerabilidad afecta principalmente a servidores HTTPS y protocolos del lado del servidor que utilizan la autenticación de cliente TLS, permitiendo al atacante acceder a recursos del servidor sin autenticación.

Productos Afectados

  • Python 3.12.0a1 a 3.12.0rc1.
  • Pitón 3.11.0 a 3.11.4.
  • Python 3.10.0 a 3.10.12.
  • Python 3.9.0 a 3.9.17.
  • Pitón 3.8.0 a 3.8.17.
  • Python 3.7.17 y anteriores.

Solución

  • Parche de seguridad en las versiones más recientes de Python: 3.11.5, 3.10.13, 3.9.18 o 3.8.18.

Recomendación

  • Instalar los parches correspondientes para las versiónes de Python que estén siendo utilizadas.
  • Agregar SSLSocket.getpeername() después de SSLSocket.wrap_socket() y antes de SSLSocket.recv(). Esta llamada “getpeername()” generará un OSError si el socket no está conectado, lo que mitiga la vulnerabilidad.

Si se está utilizando una versión de Python que se ve afectada por este problema, es esencial tomar medidas de inmediato para reducir la exposición a esta vulnerabilidad.

Referencias