Python 3.10 termina su soporte con un último parche de seguridad
Índice de contenidos
Claves de la noticia
- Python 3.10.22 es la última versión de seguridad de su rama: el proyecto anuncia que no recibirá más actualizaciones.
- Python 3.11.17 también llega el 1 de octubre y corrige problemas relacionados con archivos comprimidos, conexiones TLS y credenciales.
- Actualizar el parche de 3.10 resuelve fallos conocidos, pero mantener soporte exige trasladar la aplicación a una rama vigente.
El proyecto Python ha publicado Python 3.10.22 con una advertencia que cambia la decisión de mantenimiento: es la última entrega de seguridad de esa serie. La publicación, fechada el 1 de octubre de 2026, coincide con Python 3.11.17. Para quienes mantienen aplicaciones antiguas, el parche y la migración pasan a ser dos tareas distintas.
Un parche final que no prolonga el soporte
La ficha oficial declara expresamente el fin de vida de Python 3.10 y recomienda actualizar a una versión soportada. No anuncia una prórroga ni una nueva fase de mantenimiento. Por tanto, instalar 3.10.22 mejora el estado de una aplicación que todavía utiliza esa rama, pero no cambia el compromiso futuro del proyecto: no habrá más actualizaciones de seguridad de la serie.
Conviene distinguir ese compromiso del servicio que pueda ofrecer un distribuidor. Una empresa puede recibir paquetes mantenidos por su proveedor de sistema operativo, con correcciones incorporadas a una numeración antigua. Eso requiere comprobar sus avisos y condiciones; no permite dar por extendido el soporte del proyecto Python. El número de versión, por sí solo, tampoco demuestra qué parches incluye un paquete redistribuido.
El contraste con Python 3.11.17 es directo: esa rama sigue aceptando únicamente correcciones de seguridad, publicadas de forma irregular y como código fuente, hasta octubre de 2027. Carece ya de instaladores binarios oficiales nuevos. Son dos situaciones operativas diferentes: una rama concluye su ciclo y la otra conserva un período de mantenimiento limitado.
| Entrega | Fecha | Consecuencia |
|---|---|---|
| 3.10.22 | 1 octubre 2026 | Última actualización de seguridad |
| 3.11.17 | 1 octubre 2026 | Seguridad hasta octubre 2027 |
| 3.12.15 | 30 septiembre 2026 | Solo seguridad, hasta octubre 2028 |
| 3.13.16 | 30 septiembre 2026 | Última entrega de mantenimiento completo |
La comparación permite extraer una conclusión concreta: pasar de 3.10 a 3.11 añade soporte de seguridad, pero no recupera mantenimiento ordinario. Si una migración tiene coste elevado, elegir únicamente la siguiente numeración puede dejar preparado otro trabajo de transición en un plazo relativamente corto. La elección debe considerar dependencias y soporte, además de compatibilidad.
Los archivos comprimidos atraviesan varias correcciones
Las notas de 3.11.17 incluyen tres correcciones de tarfile que afectan al tratamiento de rutas y enlaces durante la extracción. Una refuerza la aplicación del filtro cuando un enlace termina extrayendo otro miembro del archivo; otra aborda enlaces duros hacia enlaces simbólicos; la tercera evita crear directorios fuera del destino mediante rutas que salen de él y después regresan. No son tres formatos nuevos, sino distintas formas de atravesar una frontera que debía mantenerse.
La documentación de extracción de tarfile explica por qué importa esa frontera. Un archivo TAR puede describir directorios, permisos y enlaces, además de datos. Extraerlo no equivale simplemente a copiar una colección de nombres inocuos. Los filtros reducen riesgos, pero su uso no sustituye todas las comprobaciones que necesita un servicio que acepta archivos de terceros.
La recomendación editorial para esos servicios es separar la recepción de la extracción y revisar qué identidad del sistema realiza cada operación. Un proceso con acceso a carpetas ajenas amplía las consecuencias de una ruta mal resuelta. Actualizar el intérprete y limitar los permisos cumplen funciones complementarias: la primera acción corrige el comportamiento documentado; la segunda reduce lo que podría afectar cualquier fallo que sobreviva.
En ZIP, la corrección descrita limita la descompresión por lectura de miembros bzip2 y LZMA, para evitar reservas de memoria sin límite provocadas por entradas comprimidas pequeñas. Hay una excepción explícita: los descompresores de terceros que sustituyen funciones internas y carecen de determinadas capacidades pueden seguir siendo vulnerables. Un intérprete actualizado no garantiza el mismo resultado si una aplicación reemplaza su descompresor.
Credenciales y TLS requieren pruebas distintas
La ficha de 3.12.15 identifica también la separación de credenciales por esquema de URL en urllib.request.HTTPPasswordMgr. La corrección evita reutilizar para HTTP las credenciales asociadas a HTTPS. La distinción es relevante al auditar clientes antiguos: no basta con comprobar el nombre del servidor, porque el esquema determina si la conexión utiliza transporte cifrado.
Las notas documentan además validación de parámetros de SSLContext.wrap_bio() y un problema de duración de objetos cuando una devolución de llamada SNI cambia de contexto TLS. Son mecanismos diferentes del manejo de archivos. Un inventario centrado solo en formularios de subida podría pasar por alto clientes de red y servidores con selección de certificados. No se deduce de esas notas que todos esos servicios hayan sufrido ataques ni que cada aplicación Python utilice las funciones afectadas.
Para ZIP, la documentación oficial también ayuda a distinguir los métodos de compresión y sus dependencias opcionales. La comprobación útil es reproducir las rutas reales de lectura de la aplicación, con límites de recursos y archivos controlados; no asumir que probar un ZIP de un único tipo cubre todas sus variantes.
La migración empieza por el intérprete que ejecuta el servicio
Un entorno virtual o una imagen de contenedor puede continuar usando 3.10 aunque el ordenador del desarrollador tenga otra versión. Antes de decidir el destino, conviene identificar el ejecutable del servicio, la imagen desplegada y las extensiones nativas que deberá cargar. En plataformas como Python Workers de Cloudflare, ya analizamos que la compatibilidad depende también del empaquetado y del runtime, no únicamente del lenguaje.
La ficha de 3.13.16 introduce otra frontera: será la última entrega de mantenimiento completo antes de pasar a correcciones de seguridad. Ese dato permite planificar con más precisión, sin convertir una rama reciente en una garantía indefinida. La conclusión para una instalación en 3.10 es concreta: aplicar el parche final atiende los fallos publicados; recuperar soporte exige validar y desplegar una migración. Son resultados diferentes y deben constar como tales en el plan de mantenimiento.




