- Регистрация
- Окт 16, 2022
- Сообщения
- 1,233
- Реакции
- 214
- Награды
- 2

говорится, что уязвимость в Cloud SDK для Python позволяет отправлять учетные данные клиента OAuth2 приложения на сервер, контролируемый злоумышленником. В сообщении SAP от 13 октября в бюллетене по безопасности Уязвимость затрагивает многопользовательские приложения на платформе SAP Business Technology Platform (BTP), использующие SDK — официальный клиент SAP для сервисов BTP на языке Python. Злоумышленник должен иметь возможность контролировать поддомен арендатора — имя, которое приложение передает SDK, чтобы указать, к какому арендатору относится запрос.
Уязвимость отслеживается под номером CVE-2026-89111 и имеет оценку CVSS от SAP 10,0 из 10. В уведомлении указано, что исправление внесено в версию 0.45.2 , выпущенную 21 августа.
SDK обрабатывает аутентификацию для этих сервисов с помощью учетных данных клиента приложения, идентификатора клиента и секретного ключа клиента. В версии 0.45.2 добавлена проверка, которая отклоняет любой поддомен арендатора, не являющийся простым именем.
Как выяснило издание The Hacker News, в шести более поздних версиях эта проверка применяется не во всех случаях. В версиях с 0.53.0 по 0.55.0, выпущенных в период с 10 по 18 сентября, она пропускается, когда приложение вызывает модуль службы Destination из SDK.
В версии 0.53.0 этот модуль был перенесен в новый общий код для запроса токенов, и этот код не включал проверку. В версии 0.55.1 она была добавлена туда 18 сентября.
передача поддомена арендатора, содержащего разделители URL-адреса, «теперь немедленно вызывает ошибку ValueError вместо того, чтобы молча перенаправлять учетные данные на конечную точку, контролируемую злоумышленником» . В примечаниях к выпуску 0.55.1 говорится, что
13 октября Hacker News провел собственные тесты SAP для проверки исходного кода всех версий от 0.45.1 до 0.58.4, а также трех версий 0.36. Шесть версий не прошли 9 из 11 тестов, добавленных SAP в версии 0.55.1. Эта версия и 11 последующих версий прошли все 11 тестов.
По состоянию на 13 октября в уведомлении не указано, что затронуты версии выше 0.45.2. Ни в нем, ни в примечаниях к выпуску не говорится, подпадают ли шесть выпущенных версий под действие уязвимости CVE-2026-89111.
В двух более старых версиях линейки 0.36 также отсутствует эта проверка. Версии 0.36.1 и 0.36.2 были выпущены 4 и 10 сентября соответственно, после августовского исправления, и не прошли тесты, разработанные SAP для них. Обе версии попадают в диапазон версий ниже 0.45.2, указанный в уведомлении.
| Релизы | проверка поддомена арендатора | Основа |
|---|---|---|
| Ниже 0,45,2, включая 0,36,1 и 0,36,2 | Отсутствующий | Консультативное сообщение SAP. Тестирование версий 0.36.0, 0.36.1, 0.36.2 и 0.45.1 на Hacker News. |
| от 0,45.2 до 0,52.2 | Подарок | Тестирование всех 18 релизов на Hacker News. |
| от 0,53,0 до 0,55,0 | Отсутствует для вызовов Destination. Также отсутствует для вызовов Document Management Service в версии 0.55.0. | Примечания к выпуску SAP 0.55.1. Тестирование всех 6 релизов на Hacker News. |
| от 0,55,1 до 0,58,4 | Подарок | Тестирование всех 12 релизов на Hacker News. |
Что делать
Проверка содержится в версиях 0.45.2–0.52.2 и 0.55.1–0.58.4. Версия 0.58.4 была выпущена 13 октября в PyPI, индексе пакетов Python.
Обновление в рамках версии 0.36 не добавляет проверку. Ни в одном из трех ее релизов она не содержится.
В уведомлении SAP говорится, что приложения, которые пока не могут обновиться, могут сравнивать каждый поддомен арендатора со списком зарегистрированных арендаторов, прежде чем передавать его в SDK.
Уязвимость проявляется только в том случае, если приложение передает поддомен арендатора в SDK. Исправление, внесенное в августе, затронуло три модуля: Agent Gateway, Destination и Document Management Service.
В рекомендациях не указано, следует ли приложениям, выпущенным без проверки, заменять учетные данные клиента.
Как работает ошибка
Когда приложение передает поддомен арендатора, SDK запрашивает токен доступа для этого арендатора. Для этого он берет URL-адрес токена из конфигурации приложения и заменяет часть его поддоменом арендатора.
В версиях без проверки использовалось то значение, которое им было присвоено. Затем SDK отправлял идентификатор клиента и секретный ключ клиента в полученный URL-адрес для запроса токена.
По данным SAP, злоумышленник, контролирующий поддомен арендатора, может перенаправить этот запрос на свой собственный сервер.
Проверка принимает только одно имя, состоящее из букв, цифр и дефисов, длиной до 63 символов. Любое другое значение останавливает запрос с ошибкой.
SAP называет эту уязвимость подделкой запросов на стороне сервера (SSRF), то есть уязвимостью, при которой сервер может быть вынужден отправить запрос не тому адресату, которому он предназначался.
Что злоумышленник сможет сделать с учетными данными, зависит от того, какие права разрешены клиентскому приложению. В рекомендациях об этом ничего не говорится.
Исправлено в августе, раскрыто в октябре.
Непроверенный код присутствовал в SDK с момента его первого релиза на PyPI 16 марта.
В примечаниях к августовскому релизу исправление указано в разделе «Исправления ошибок» и не упоминается безопасность. «Ранее недопустимые значения незаметно использовались для создания некорректного URL-адреса», — говорится в примечаниях.
Уведомление об уязвимости появилось 53 дня спустя. В нем указывается, что о ней сообщил пользователь GitHub под ником SunandM , и никаких сообщений об атаках не приводится.
Источник

