Vulnerabilidad en CPython de Python Software Foundation (CVE-2025-12781)
Gravedad CVSS v4.0:
MEDIA
Tipo:
CWE-704
Conversión de tipos errónea
Fecha de publicación:
21/01/2026
Última modificación:
02/02/2026
Descripción
Al pasar datos a las funciones b64decode(), standard_b64decode() y urlsafe_b64decode() en el módulo "base64", los caracteres "+/" siempre serán aceptados, independientemente del valor del parámetro "altchars", típicamente usado para establecer un &#39;alfabeto base64 alternativo&#39; como el alfabeto seguro para URL. Este comportamiento coincide con lo recomendado en RFCs de base64 anteriores, pero los RFCs más recientes ahora recomiendan o bien descartar caracteres fuera del alfabeto base64 especificado o generar un error. El comportamiento antiguo tiene la posibilidad de causar problemas de integridad de datos.<br />
<br />
Este comportamiento solo puede ser inseguro si su aplicación usa un alfabeto base64 alternativo (sin "+/"). Si su aplicación no usa el parámetro "altchars" o la función urlsafe_b64decode(), entonces su aplicación no usa un alfabeto base64 alternativo.<br />
<br />
Los parches adjuntos NO hacen que el comportamiento de decodificación base64 genere un error, ya que esto sería un cambio de comportamiento y rompería programas existentes. En su lugar, el parche desaprueba el comportamiento que será reemplazado por el comportamiento recién recomendado en una futura versión de Python. Se recomienda a los usuarios mitigar verificando que las entradas controladas por el usuario coincidan con el alfabeto base64 que esperan o verificar que su aplicación no se vería afectada si las funciones b64decode() aceptaran "+" o "/" fuera de altchars.
Impacto
Puntuación base 4.0
6.30
Gravedad 4.0
MEDIA
Puntuación base 3.x
5.30
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:python:python:*:*:*:*:*:*:*:* | 3.13.10 (excluyendo) | |
| cpe:2.3:a:python:python:*:*:*:*:*:*:*:* | 3.14.0 (incluyendo) | 3.14.1 (excluyendo) |
| cpe:2.3:a:python:python:3.15.0:alpha1:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/python/cpython/commit/13360efd385d1a7d0659beba03787ea3d063ef9b
- https://github.com/python/cpython/commit/1be80bec7960f5ccd059e75f3dfbd45fca302947
- https://github.com/python/cpython/commit/9060b4abbe475591b6230b23c2afefeff26fcca5
- https://github.com/python/cpython/commit/e95e783dff443b68e8179fdb57737025bf02ba76
- https://github.com/python/cpython/commit/fd17ee026fa9b67f6288cbafe374a3e479fe03a5
- https://github.com/python/cpython/issues/125346
- https://github.com/python/cpython/pull/141128
- https://mail.python.org/archives/list/security-announce@python.org/thread/KRI7GC6S27YV5NJ4FPDALS2WI5ENAFJ6/



