Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/bountyyfi/azure-apim-cross-tenant-signup-bypass
RicognizioneAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza CloudConfigurazione ErrataSicurezza delle API
GitHub

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
bountyyfi/azure-apim-cross-tenant-signup-bypass

Azure-APIM-Cross-Tenant-Signup-Bypass

Advisory di sicurezza: il portale per sviluppatori di Azure APIM consente la registrazione di account cross-tenant aggirando le restrizioni di iscrizione dell'interfaccia utente. Segnalato due volte a MSRC - chiuso come "by design".

Vedi Repository
16242 mesi faNon ancora revisionato
Condividi

Bypass della registrazione cross-tenant di Azure APIM

Stato (01.12.2025): Questa vulnerabilità è ancora attiva e sfruttabile. Microsoft non ha corretto il problema e lo considera "by design".

Advisory di sicurezza

GHSA-vcwf-73jp-r7mv

CVE-2025-66390

Riepilogo

Una vulnerabilità di sicurezza nel portale per sviluppatori (Developer Portal) di Azure API Management (APIM) consente agli attaccanti di registrare account su qualsiasi istanza APIM che abbia l'autenticazione di base (Basic Authentication) abilitata, anche quando gli amministratori hanno disabilitato la registrazione degli utenti nell'interfaccia del portale.

Questo bypass consente la creazione di account cross-tenant, permettendo potenzialmente l'accesso non autorizzato alla documentazione delle API, alle chiavi di sottoscrizione e ad altre risorse esposte tramite il portale per sviluppatori.

Cronologia della divulgazione

DataAzione
2025-09-30Vulnerabilità scoperta
2025-09-30Primo report inviato a MSRC
2025-10-30Risposta MSRC: chiuso come "non è una vulnerabilità"
2025-11-01Secondo report inviato a MSRC con dettagli aggiuntivi
2025-11-20Risposta MSRC: chiuso come "by design"
2025-11-20Segnalato a CERT-FI
2025-11-26Divulgazione pubblica
2025-11-27CVE richiesto a MITRE
2026-07-09CVE-2025-66390 assegnato da MITRE TL-Root/CNA-LR

Dettagli della vulnerabilità

Il problema

Quando Azure APIM è configurato con l'autenticazione di base per il portale per sviluppatori, gli amministratori possono disabilitare la registrazione degli utenti tramite l'interfaccia del portale Azure. Tuttavia, questo nasconde solo il modulo di registrazione nell'interfaccia del portale.

L'endpoint API di registrazione sottostante rimane attivo e accetta direttamente le richieste di registrazione, aggirando completamente la restrizione dell'interfaccia.

Causa principale

Due problemi si combinano per creare questa vulnerabilità:

  1. Restrizione solo a livello di interfaccia: disabilitare la registrazione nasconde solo il modulo nell'interfaccia del portale. L'API di registrazione backend rimane attiva e accessibile.
  2. Nessuna validazione del tenant: l'API di registrazione non verifica che la richiesta provenga dal portale dello stesso tenant. Le richieste possono essere create da qualsiasi origine per registrarsi su qualsiasi istanza vulnerabile.

Vettore d'attacco

L'attacco richiede due istanze APIM:

  1. Istanza dell'attaccante: qualsiasi portale per sviluppatori APIM con registrazione abilitata (o un'istanza APIM dell'attaccante)
  2. Istanza target: portale per sviluppatori APIM della vittima con registrazione "disabilitata" nell'interfaccia ma con autenticazione di base ancora configurata

Passaggi:

  1. L'attaccante accede alla pagina di registrazione del proprio portale per sviluppatori APIM (dove la registrazione è abilitata)
  2. L'attaccante compila il modulo di registrazione e intercetta la richiesta (ad es. usando Burp Suite)
  3. L'attaccante cambia l'header Host dalla propria istanza a quella target
  4. L'attaccante invia la richiesta modificata
  5. L'account viene creato sull'istanza target nonostante la registrazione sia "disabilitata" nella console di amministrazione
  6. L'attaccante ottiene l'accesso al portale per sviluppatori target come utente registrato

Dettaglio tecnico chiave: il bypass cross-tenant funziona manipolando l'header Host nella richiesta POST di registrazione. L'endpoint /signup elabora le richieste in base all'header Host senza validare i confini di tenant.

Esempio di manipolazione della richiesta:

POST /signup HTTP/1.1
Host: target-apim.developer.azure-api.net   <-- Changed from attacker's instance
Origin: https://attacker-apim.developer.azure-api.net
Content-Type: application/json

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

Il problema principale: disabilitare la registrazione nell'interfaccia non disabilita l'API sottostante. L'endpoint API accetta richieste cross-tenant in base all'header Host.

Impatto

  • Creazione di account cross-tenant - registrazione su qualsiasi istanza APIM con autenticazione di base abilitata
  • Bypass dei controlli amministrativi - le restrizioni di registrazione sono inefficaci
  • Accesso alla documentazione delle API che potrebbe contenere informazioni interne sensibili
  • Possibilità di richiedere chiavi di sottoscrizione delle API a seconda della configurazione del portale
  • Esposizione dei portali interni - gli attaccanti esterni possono registrarsi su portali "interni"

Configurazioni interessate

La tua istanza APIM è vulnerabile se:

  • Il provider di identità con autenticazione di base è configurato (anche se la registrazione è "disabilitata" nell'interfaccia)
  • Il portale per sviluppatori è distribuito e accessibile

La tua istanza APIM NON è vulnerabile se:

  • Il provider di identità con autenticazione di base è completamente rimosso (non solo la registrazione disabilitata)
  • È configurata solo l'autenticazione Azure AD / OAuth
  • Il portale per sviluppatori non è distribuito o è disabilitato

Punto chiave: disabilitare la registrazione nell'interfaccia del portale Azure NON è sufficiente. Il provider di identità con autenticazione di base deve essere completamente rimosso per prevenire il bypass della registrazione cross-tenant.

Proprietà delle risorse Azure

Usa questi valori di proprietà per identificare le istanze APIM vulnerabili tramite Azure Resource Graph, modelli ARM o Azure Policy.

Proprietà di configurazione vulnerabili

Percorso proprietàValore vulnerabileDescrizione
properties.developerPortalStatusEnabledIl portale per sviluppatori è accessibile
sku.nameDeveloper, Basic, Standard, PremiumLivelli non-Consumption (il livello Consumption ha funzionalità del portale limitate)

Verifica del provider di identità (sotto-risorsa)

Il provider di identità con autenticazione di base è una risorsa separata all'interno dell'istanza APIM:

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

Vulnerabile se presente: la presenza di una risorsa provider di identità basic indica che l'autenticazione di base è configurata.

Impostazioni di registrazione del portale (sotto-risorsa)

Resource Type: Microsoft.ApiManagement/service/portalsettings/signup
Property: properties.enabled
ProprietàValoreSignificato
properties.enabledtrueRegistrazione visibile nell'interfaccia
properties.enabledfalseRegistrazione nascosta nell'interfaccia (l'API funziona ancora se l'autenticazione di base è presente!)

Query di Azure Resource Graph

Usa questa query per trovare istanze APIM potenzialmente vulnerabili:

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

Per verificare i provider di identità con autenticazione di base:

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

Comandi Azure CLI

Scarica lo strumento