SAP исправила критическую утечку OAuth2-учётных данных в Python SDK

SAP раскрыла уязвимость CVE-2026-89111 с максимальной оценкой CVSS 10.0 в Cloud SDK for Python — официальном клиенте для сервисов SAP Business Technology Platform. Ошибка может позволить передать OAuth2 client ID и client secret на сервер злоумышленника в мультиарендных приложениях, если атакующий контролирует значение tenant subdomain.
Исправление впервые появилось в версии 0.45.2, выпущенной 21 августа. Однако проверка не применялась во всех сценариях: версии 0.53.0–0.55.0 пропускали её при вызовах модуля Destination, а в 0.55.0 проблема также затрагивала обращения к Document Management Service. Полная защита для этих путей добавлена в версии 0.55.1 от 18 сентября.
Как формируется запрос к чужому серверу
SDK получает поддомен арендатора от приложения и использует его при построении URL для запроса токена доступа. В уязвимых версиях библиотека принимала переданное значение без достаточной проверки. Если в нём содержались разделители URL, итоговый адрес мог указывать на инфраструктуру, контролируемую атакующим.
Затем SDK отправлял на этот адрес запрос токена вместе с client ID и client secret приложения. SAP классифицирует дефект как SSRF: сервер можно заставить обратиться к непредусмотренному назначению. Возможные действия с перехваченными учётными данными зависят от разрешений конкретного OAuth2-клиента; этих сценариев в бюллетене SAP не уточняет.
Какие версии требуют внимания
Проверка принимает только один поддомен длиной до 63 символов, состоящий из букв, цифр и дефисов. Недопустимое значение теперь должно немедленно вызвать ошибку ValueError, а не использоваться при конструировании URL.
- Версии ниже 0.45.2 уязвимы, включая ветку 0.36: обновление внутри неё не добавляет проверку.
- Версии с 0.45.2 по 0.52.2 содержат проверку.
- В версиях с 0.53.0 по 0.55.0 проверка отсутствует для вызовов Destination.
- Версии с 0.55.1 по 0.58.4 содержат проверку во всех проверенных сценариях.
13 октября актуальной версией пакета в PyPI была 0.58.4. SAP указывает в бюллетене версию 0.45.2 как исправляющую проблему, но отдельно не поясняет статус шести промежуточных релизов, где проверка была пропущена для части модулей.
Что проверить командам
В первую очередь стоит определить, передаёт ли приложение tenant subdomain в Cloud SDK for Python, и сверить фактически установленную версию пакета. Если обновление пока невозможно, SAP рекомендует до передачи значения в SDK сопоставлять поддомен со списком зарегистрированных арендаторов.
После обновления бизнесу следует проверить, могли ли уязвимые экземпляры SDK обрабатывать неконтролируемые значения поддомена, и оценить риски для используемых client secret. SAP не сообщает о зафиксированных атаках и не даёт отдельной рекомендации по ротации учётных данных, поэтому решение должно учитывать настройки и права конкретного OAuth2-клиента.

