Mastodon Mastodon Mastodon Mastodon

Una vulnerabilidad crítica en SAP Cloud SDK for Python permite interceptar credenciales OAuth2

Foto del autor

CyberSecureFox Editorial Team

Publicado:

SAP ha revelado la vulnerabilidad crítica CVE-2026-89111 con la puntuación máxima de CVSS 10.0 en su Cloud SDK for Python, el cliente oficial de Python para los servicios de SAP Business Technology Platform (BTP). Según el aviso de seguridad, la vulnerabilidad permite a un atacante que controle el parámetro tenant_subdomain redirigir las solicitudes OAuth2 a un servidor bajo su control e interceptar las credenciales de cliente (client ID y client secret) de aplicaciones multitenant. Se ven afectadas las versiones del paquete sap-cloud-sdk anteriores a la 0.45.2. El problema está corregido: se debe actualizar a la versión 0.45.2 o superior.

Mecanismo de la vulnerabilidad

La vulnerabilidad está clasificada como CWE-918 (falsificación de solicitudes en el lado del servidor, SSRF). Cuando una aplicación multitenant en SAP BTP pasa al SDK el valor tenant_subdomain, el SDK lo inserta en la URL para obtener el token OAuth2. En las versiones vulnerables, el SDK aceptaba valores arbitrarios sin validación, incluidas cadenas con separadores de URL. Un atacante capaz de controlar este parámetro podía formar un valor que redirigiera la solicitud a su propio servidor, al que el SDK enviaba las credenciales de cliente de la aplicación.

La corrección en la versión 0.45.2 añadió la validación de tenant_subdomain según las reglas de RFC 1123 para etiquetas DNS: solo se permiten letras, cifras y guiones, con una longitud de hasta 63 caracteres. Ahora, los valores no válidos generan un error ValueError. La comprobación se añadió en tres módulos: Agent Gateway, Destination y Document Management Service.

Versiones afectadas y matices del parche

El aviso oficial de SAP indica como afectadas todas las versiones anteriores a la 0.45.2 y como corregida la versión 0.45.2. Sin embargo, según The Hacker News, que probó el código fuente utilizando los propios tests de SAP, la situación es más compleja. Según se informa, las versiones de la 0.53.0 a la 0.55.0 no contienen la comprobación en el módulo Destination: durante el refactor en la versión 0.53.0, el código de procesamiento de tokens se trasladó a un nuevo componente común, XsuaaAuthProvider, en el que no se incluyó la validación. Según los mismos datos, estas versiones no superaron 9 de los 11 tests de validación añadidos por SAP en la versión 0.55.1.

También se informa de que las versiones 0.36.1 y 0.36.2, publicadas ya después de la corrección de agosto, tampoco contienen la comprobación. Importante: en el momento de la publicación, el aviso oficial de SAP no indica las versiones posteriores a la 0.45.2 como afectadas, y la cuestión de la aplicabilidad de CVE-2026-89111 a estas versiones más recientes sigue abierta.

Así, según los datos disponibles, contienen la comprobación:

  • Las versiones de la 0.45.2 a la 0.52.2
  • Las versiones de la 0.55.1 a la 0.58.4 (la última versión en el momento de la divulgación)

Ninguna de las tres versiones de la serie 0.36 contiene la validación, y la actualización dentro de esta serie no resuelve el problema.

Evaluación del impacto

La vulnerabilidad no afecta a todas las instalaciones del SDK, sino solo a las aplicaciones multitenant en SAP BTP que pasan el valor tenant_subdomain al SDK, concretamente a través de los módulos Destination, Agent Gateway y Document Management Service. Las aplicaciones que no utilizan estas rutas no están expuestas a esta vulnerabilidad.

Las consecuencias de la explotación dependen de los privilegios de las credenciales de cliente comprometidas. El aviso de SAP no detalla los posibles escenarios, pero la interceptación de credenciales OAuth2 potencialmente abre acceso a todos los recursos para los que el cliente de la aplicación esté autorizado. Por el momento no se ha confirmado explotación activa de la vulnerabilidad; el CVE no figura en el catálogo CISA KEV.

SAP ya se ha enfrentado en repetidas ocasiones a vulnerabilidades críticas en sus productos en la nube; anteriormente hemos escrito sobre una vulnerabilidad CVSS 10.0 en Commerce Cloud.

Recomendaciones

  • Actualice el SDK a la versión 0.55.1 o superior (se recomienda la 0.58.4). Las versiones 0.45.2–0.52.2 también contienen la comprobación, pero no cubren la ruta a través de XsuaaAuthProvider, que apareció en la 0.53.0.
  • Si la actualización no es posible, SAP recomienda validar tenant_subdomain frente a la lista de tenants registrados antes de pasar el valor al SDK.
  • Compruebe la versión que utiliza: si la aplicación funciona con las versiones 0.53.0–0.55.0 y utiliza el módulo Destination, la actualización es de importancia crítica, a pesar de que formalmente el aviso oficial no incluye estas versiones entre las afectadas.
  • Evalúe la necesidad de rotar las credenciales: el aviso de SAP no indica si las aplicaciones que han funcionado con versiones vulnerables deben sustituir sus client credentials. Para las aplicaciones que procesan datos externos sobre tenants, la rotación de credenciales es una medida de precaución razonable.

La vulnerabilidad estaba presente en el SDK desde la primera versión publicada en PyPI en marzo, se corrigió discretamente en agosto como un «Bug Fix» sin mención de seguridad, y el aviso de seguridad apareció solo 53 días después. Las organizaciones que utilizan aplicaciones multitenant en SAP BTP con Cloud SDK for Python deben comprobar de inmediato la versión del SDK y actualizarla a la 0.55.1 o superior y, si la actualización no es posible, implementar la validación de tenant_subdomain mediante una lista blanca de tenants registrados.


CyberSecureFox Editorial Team

El equipo editorial de CyberSecureFox cubre noticias de ciberseguridad, vulnerabilidades, campañas de malware, actividad de ransomware, AI security, cloud security y security advisories de proveedores. Los materiales se preparan a partir de official advisories, datos de CVE/NVD, alertas de CISA, publicaciones de proveedores e informes públicos de investigadores. Los artículos se revisan antes de su publicación y se actualizan cuando aparece nueva información.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.