Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Azure-APIM-Cross-Tenant-Signup-Bypass — Сообщение о безопасности: Портал разработчика Azure APIM позволяет регистрацию учетных записей между арендаторами, обходя ограничения регистрации в пользовательском интерфейсе. Дважды сообщалось в MSRC — закрыто как «по замыслу». | Kitploit
Инструменты/GitHubGitHub/bountyyfi/azure-apim-cross-tenant-signup-bypass
РазведкаАнализ уязвимостейЭксплуатация веб-приложенийСбор информацииБезопасность облачных средНеправильная КонфигурацияБезопасность API
GitHub

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
bountyyfi/azure-apim-cross-tenant-signup-bypass

Azure-APIM-Cross-Tenant-Signup-Bypass

Сообщение о безопасности: Портал разработчика Azure APIM позволяет регистрацию учетных записей между арендаторами, обходя ограничения регистрации в пользовательском интерфейсе. Дважды сообщалось в MSRC — закрыто как «по замыслу».

Репозиторий
16252 месяцев назадЕщё не проверено

Обход регистрации в Azure APIM между арендаторами

Статус (01.12.2025): Эта уязвимость по-прежнему активна и эксплуатируема. Microsoft не исправила эту проблему и считает её «предусмотренной конструкцией».

Уведомление о безопасности

GHSA-vcwf-73jp-r7mv

CVE-2025-66390

Краткое описание

Уязвимость безопасности на портале разработчика Azure API Management (APIM) позволяет злоумышленникам регистрировать учетные записи на любом экземпляре APIM, где включена базовая аутентификация, даже если администраторы отключили регистрацию пользователей в пользовательском интерфейсе портала.

Этот обход позволяет создавать учетные записи между арендаторами, что может привести к несанкционированному доступу к документации API, ключам подписки и другим ресурсам, доступным через портал разработчика.

График раскрытия

ДатаДействие
2025-09-30Уязвимость обнаружена
2025-09-30Первоначальный отчет отправлен в MSRC
2025-10-30Ответ MSRC: закрыто как «не уязвимость»
2025-11-01Второй отчет отправлен в MSRC с дополнительными деталями
2025-11-20Ответ MSRC: закрыто как «предусмотрено конструкцией»
2025-11-20Сообщено в CERT-FI
2025-11-26Публичное раскрытие
2025-11-27Запрошен CVE у MITRE
2026-07-09CVE-2025-66390 назначен MITRE TL-Root/CNA-LR

Детали уязвимости

Проблема

Когда Azure APIM настроен с базовой аутентификацией для портала разработчика, администраторы могут отключить регистрацию пользователей через пользовательский интерфейс портала Azure. Однако это только скрывает форму регистрации в интерфейсе портала.

Соответствующая конечная точка API регистрации остается активной и принимает запросы на регистрацию напрямую, полностью обходя ограничение, установленное в пользовательском интерфейсе.

Основная причина

Две проблемы вместе создают эту уязвимость:

  1. Ограничение только на уровне пользовательского интерфейса: Отключение регистрации только скрывает форму в пользовательском интерфейсе портала. Бэкенд-API регистрации остается активным и доступным.
  2. Отсутствие проверки арендатора: API регистрации не проверяет, исходит ли запрос из портала того же арендатора. Запросы могут быть сформированы из любого источника для регистрации на любом уязвимом экземпляре.

Вектор атаки

Для атаки требуется два экземпляра APIM:

  1. Экземпляр злоумышленника: Любой портал разработчика APIM с включенной регистрацией (или собственный экземпляр APIM злоумышленника)
  2. Целевой экземпляр: Портал разработчика APIM жертвы, где регистрация «отключена» в пользовательском интерфейсе, но базовая аутентификация всё ещё настроена

Шаги:

  1. Злоумышленник заходит на страницу регистрации своего собственного портала разработчика APIM (где регистрация включена)
  2. Злоумышленник заполняет форму регистрации и перехватывает запрос (например, с помощью Burp Suite)
  3. Злоумышленник меняет заголовок Host со своего экземпляра на целевой
  4. Злоумышленник отправляет измененный запрос
  5. Учетная запись создается на целевом экземпляре, несмотря на то, что регистрация «отключена» в консоли администратора
  6. Злоумышленник получает доступ к целевому порталу разработчика как зарегистрированный пользователь

Ключевая техническая деталь: Обход между арендаторами осуществляется путем манипуляции заголовком Host в POST-запросе на регистрацию. Конечная точка /signup обрабатывает запросы на основе заголовка Host без проверки границ арендатора.

Пример манипуляции запросом:

POST /signup HTTP/1.1
Host: target-apim.developer.azure-api.net   <-- Изменено с экземпляра злоумышленника
Origin: https://attacker-apim.developer.azure-api.net
Content-Type: application/json

{"challenge":{...},"signupData":{"email":"[email protected]",...}}

Основная проблема: отключение регистрации в пользовательском интерфейсе НЕ отключает соответствующий API. Конечная точка API принимает запросы между арендаторами на основе заголовка Host.

Воздействие

  • Создание учетных записей между арендаторами — регистрация на любом экземпляре APIM с включенной базовой аутентификацией
  • Обход административных ограничений — ограничения на регистрацию неэффективны
  • Доступ к документации API, которая может содержать конфиденциальную внутреннюю информацию
  • Возможность запросить ключи подписки API в зависимости от конфигурации портала
  • Раскрытие внутреннего портала — внешние злоумышленники могут регистрироваться на «внутренних» порталах

Уязвимые конфигурации

Ваш экземпляр APIM уязвим, если:

  • Настроен поставщик удостоверений для базовой аутентификации (даже если регистрация «отключена» в пользовательском интерфейсе)
  • Портал разработчика развернут и доступен

Ваш экземпляр APIM НЕ уязвим, если:

  • Поставщик удостоверений для базовой аутентификации полностью удален (а не только отключена регистрация)
  • Настроена только аутентификация Azure AD / OAuth
  • Портал разработчика не развернут или отключен

Ключевой момент: Отключение регистрации в пользовательском интерфейсе портала Azure НЕДОСТАТОЧНО. Для предотвращения обхода регистрации между арендаторами поставщик удостоверений для базовой аутентификации должен быть полностью удален.

Свойства ресурсов Azure

Используйте эти значения свойств для идентификации уязвимых экземпляров APIM через Azure Resource Graph, шаблоны ARM или Azure Policy.

Свойства уязвимой конфигурации

Путь к свойствуУязвимое значениеОписание
properties.developerPortalStatusEnabledПортал разработчика доступен
sku.nameDeveloper, Basic, Standard, PremiumУровни, отличные от Consumption (уровень Consumption имеет ограниченные функции портала)

Проверка поставщика удостоверений (подресурс)

Поставщик удостоверений для базовой аутентификации является отдельным ресурсом в экземпляре APIM:

Resource Type: Microsoft.ApiManagement/service/identityProviders
Name: basic

Уязвим, если существует: Наличие ресурса поставщика удостоверений basic указывает, что базовая аутентификация настроена.

Настройки регистрации на портале (подресурс)

Resource Type: Microsoft.ApiManagement/service/portalsettings/signup
Property: properties.enabled
СвойствоЗначениеЗначение
properties.enabledtrueРегистрация видна в пользовательском интерфейсе
properties.enabledfalseРегистрация скрыта в пользовательском интерфейсе (API всё ещё работает, если существует базовая аутентификация!)

Запрос Azure Resource Graph

Используйте этот запрос для поиска потенциально уязвимых экземпляров APIM:

resources
| where type == "microsoft.apimanagement/service"
| where properties.developerPortalStatus == "Enabled"
| where sku.name != "Consumption"
| project name, resourceGroup, subscriptionId, location, sku.name, properties.developerPortalStatus

Для проверки поставщиков удостоверений с базовой аутентификацией:

resources
| where type == "microsoft.apimanagement/service/identityproviders"
| where name endswith "/basic"
| project apimInstance=tostring(split(id, "/providers/Microsoft.ApiManagement/service/")[1]), resourceGroup, subscriptionId

Команды Azure CLI

Проверка статуса портала разработчика:

az apim show --name <apim-name> --resource-group <rg-name> --query "{name:name, portalStatus:developerPortalStatus, sku:sku.name}"

Список поставщиков удостоверений (проверьте наличие 'basic'):

az apim identity-provider list --resource-group <rg-name> --service-name <apim-name> --query "[].name"
Скачать инструмент