domingo, 25 de octubre de 2026
Secure crew

Ciberseguridad con criterio

Vulnerabilidades y parches

CPython incorpora a ssl una lista de bloqueo para claves eMudhra comprometidas

·2 fuentes

Por SecureCrew Editorial · Criterios editoriales y correcciones

El cambio, fusionado en la rama principal el 24 de octubre, añade un bloqueo por clave pública para cadenas TLS con certificados intermedios eMudhra comprometidos. La integración en una rama de desarrollo no acredita que una versión instalada ya incluya la defensa.

Manos enguantadas examinan con lupa dos tarjetas de certificado con sellos de llave sobre una mesa óptica; una está apartada con una pinza roja y una etiqueta Securecrew aparece cosida en la manga.

CPython incorpora una lista de bloqueo para rechazar cadenas TLS que contengan claves intermedias de eMudhra comprometidas. Python anunció el cambio el 24 de octubre: el módulo ssl rechazará esos certificados incluso cuando la aplicación no haya configurado comprobación de revocación. La novedad es una defensa adicional en la validación TLS del propio runtime, no una actualización automática de todos los programas que usan Python.

El problema parte de certificados de una autoridad intermedia cuyas claves privadas quedaron comprometidas. Si un cliente todavía confía en la cadena correspondiente, un atacante en posición de interceptar tráfico podría presentar certificados fraudulentos y hacerse pasar por un servidor. La revocación suele depender de que la cadena de clientes y sus almacenes la consulten y la apliquen; en la práctica, bibliotecas y paquetes pueden mantener copias propias o no consultar esos mecanismos. -SecureCrew dice: confiar en que cada contenedor actualice su almacén a tiempo es un plan que funciona muy bien en la diapositiva de arquitectura.-

Una lista por clave, no solo por certificado

El parche añade a _ssl una denylist basada en el DER de SubjectPublicKeyInfo (SPKI), la representación codificada de la clave pública del certificado. El verificador busca esas claves en la cadena presentada durante el handshake TLS. Como compara la clave y no únicamente un certificado concreto, también puede bloquear certificados cruzados que reutilicen la misma clave comprometida.

Ese detalle cubre una evasión práctica: una CA puede emitir variantes de una cadena con certificados distintos, pero si conservan la misma clave intermedia, una regla basada solo en la huella del certificado podría no reconocerlas. La entrada por SPKI amplía el bloqueo a esas variantes, según el cambio revisado en CPython. El comunicado del equipo afirma que los certificados conocidos de la lista se rechazarán aunque no haya revocación configurada; el control se aplica durante la validación de la cadena, no convierte en segura una conexión que haya desactivado la verificación.

-SecureCrew dice: cambiar el envoltorio del certificado mientras la clave sigue siendo la misma es como cambiarle la funda a una llave que ya se ha denunciado.-

Qué cubre y qué falta comprobar

El pull request de CPython se fusionó en main el 24 de octubre, y la documentación de seguridad anunció el nuevo comportamiento ese mismo día. Eso confirma el cambio en el código de desarrollo, pero no demuestra por sí solo qué binario de Python lleva ya la lista, cuándo lo publica cada distribución ni si una aplicación concreta usa el módulo estándar ssl. Los equipos deben comprobar las notas de la versión y los paquetes que despliegan; un merge no actualiza intérpretes ya instalados.

La denylist sirve como última línea de defensa, no como sustituto del mantenimiento de los almacenes de confianza ni de la actualización de paquetes que incluyen uno propio. En especial, los entornos virtuales, imágenes de contenedor y herramientas de instalación pueden traer dependencias y certificados distintos del sistema operativo. Revisar una sola máquina de desarrollo no acredita que workers, funciones serverless y jobs de CI usen la misma ruta TLS.

-SecureCrew dice: “está en main” describe dónde vive el cambio; todavía no responde qué imagen desplegó producción.-

Una protección acotada

El alcance técnico se concentra en las conexiones que pasan por la verificación de certificados de CPython ssl. No convierte a toda aplicación Python en inmune a la suplantación TLS: un componente que use otro runtime, otra biblioteca o un paquete con un almacén de confianza propio puede seguir un camino distinto. Tampoco permite inferir que un sistema fue atacado; el anuncio corrige una exposición asociada a claves comprometidas, no documenta una intrusión en usuarios de Python.

Para decidir si el cambio ya protege un servicio, identifica primero el intérprete y su procedencia, después la versión instalada y finalmente qué biblioteca efectúa las conexiones salientes. Si todavía no hay una versión distribuida que incluya el cambio, mantén la respuesta apoyada en las medidas de confianza y paquetes que sí estén publicadas para ese entorno. La verificación debe terminar en el artefacto desplegado, no en la rama del repositorio ni en el portátil de quien preparó la imagen.

Diccionario de la Crew

SPKI — Estructura de un certificado que identifica y codifica la clave pública del sujeto.
Certificado cruzado — Certificado alternativo que conserva una clave pública, pero encadena la confianza a través de otra autoridad o ruta.

Fuentes

Fuentes consultadas

También te puede interesar