Official MCP Python SDK Flaw Can Let Malicious Servers Steal OAuth Credentials
Los mantenedores del kit de desarrollo de software oficial en Python para el Modelo de Protocolo de Contexto informaron sobre una vulnerabilidad que permite a un servidor malicioso engañar a las aplicaciones para que entreguen sus credenciales de OAuth destinadas a servicios legítimos. Las versiones vulnerables del paquete transmitían información confidencial, como el secreto del cliente, el código de autorización y la clave de verificación PKCE, hacia puntos finales de control de un atacante. Con estos datos sustraídos, los agresores pueden solicitar tokens de acceso válidos con los permisos otorgados a la aplicación, y dado que el secreto del cliente es de larga duración, este sigue funcionando hasta que se realice un cambio.
El fallo de seguridad ocurre porque el cliente, al necesitar iniciar sesión, consultaba al servidor conectado sobre la ubicación del servicio de autorización sin verificar adecuadamente dicha respuesta. De esta manera, un servidor malicioso podía desviar la autenticación hacia un destino controlado por el atacante o manipular los detalles del servicio de inicio de sesión. En el caso de los proveedores interactivos, aunque se requiera la aprobación de un usuario mediante una página legítima que no genera sospechas, la entrega simultánea de la clave de verificación anula la protección diseñada para evitar la reutilización de códigos robados.
Las aplicaciones resultan afectadas si utilizan el SDK como cliente HTTP junto a determinados proveedores de OAuth y se conectan a servidores que no controlan por completo. La solución principal consiste en actualizar a las versiones específicas corregidas, aunque para ciertos proveedores también es necesario configurar de manera explícita el emisor del servicio de login. Adicionalmente, se recomienda limpiar los registros anteriores, rotar los secretos de los clientes y revocar los tokens si existió conexión previa con servidores que no sean de confianza.