Chiudere un foro di posta elettronica e altri sei difetti di squadra

FixVOIPService
Spegnimento
5 agosto 2026 alle ore 07:24 UTC
Autore
Kamo
Impegno
c7cb180

Recensione avversaria di 6df0008 ha confermato 24 risultati. I più importanti: CRITICAL — qualsiasi membro potrebbe eliminare la posta di un collega. Squadre voicemail ids erano composto come "{mailbox}|{graphMessageId}", e mark-read / delete / fetch dividere caller-supplied id e usato la sua casella di posta mezzo verbatim come /users/{mailbox} sul token di domanda di org — che può raggiungere ogni casella di posta dell'inquilino. The mailbox+messageId coppie sono state consegnate da GET /instances/{id}/voicemails, quindi non era nemmeno un gioco di indovinare. La casella di posta è ora risolta esclusivamente dalla chiamata connessione Microsoft del membro e non è derivabile da nulla un cliente invia; org-scoped work (sync, health) non risolve mailbox e non legge nessuno. Che cosa? arresta anche la sincronizzazione delle istanze a piedi ogni casella di posta del collega sul token app. Dropping la casella di posta dal id corregge due difetti più confermati gratuitamente: il ids erano ~190-240 chars contro una colonna VARCHAR(128) (ogni persistono fallito), e il '|' ha fatto respingere l'URL con un 400 prima del routing di primavera, quindi archivio ed eliminazione mai raggiunto il server affatto. Estensione ids passare a '~' per la stessa ragione, e il suffisso di routing Teams (+1425...;ext=1234, 21 chars) è ora tagliata per adattarsi al VARCHAR di EXTENSION NUMBER(20) invece di mancare la sincronizzazione. HIGH — la storia delle chiamate era silenziosamente vuota per la maggior parte dei membri. ottenerePstnCalls è un alimentazione a livello inquilino senza filtro per utente, e il codice ha bloccato il fetch al 2000 file BEFORE filtraggio, quindi in qualsiasi inquilino con più di ~2000 chiamate PSTN in 90 giorni il cappello è stato consumato dalle file di altre persone. La filtrazione avviene ora durante la paging e si ferma non appena la pagina richiesta è piena. HIGH — Le notifiche del grafico sono state elaborate in linea sul thread di risposta: N Sequential Graph round-trips contro un bilancio di riconoscimento di tre secondi. Passato 15% risposte lente in dieci minuti Grafico segna il punto finale "drop" e scarti notifiche per dieci minuti. La convalida rimane in linea; il lavoro si sposta a Esecutore delle chiamate. HIGH — lo stato di connessione dei membri ha portato un membroId ma nulla l'ha legata al persona che completa il sign-in, quindi un membro potrebbe consegnare il loro URL di connessione a un collega e finiscono con l'identità del collega Teams sulla loro fila. Auto- connettersi ora richiede il accesso Microsoft per corrispondere l'e-mail Kamo del membro; connettersi per conto di qualcuno rimane consentito e viene registrato nello stato. HIGH — MemberVoipConfigController si è fidato del percorso membroId senza controllo org GET o PUT, e niente a monte ne ha fornito uno: un IDOR cross-tenant su ogni VOIP config del membro, ora compreso il loro oggetto Entra id. Preesistente, ma questo commit è quello che mette un'identità in quel payload. Inoltre: TeamsNeedsReconnectException ha restituito 500 invece di 409 per il previsto "non ancora collegato" stato; l'endpoint ACS era non validato operatore configurazione che un Delegato il token di chiamata è stato POSTed a (ora schema- e host-pinned); concurrent abbonamento upkeep potrebbe orfano un abbonamento Graph contro il 100-per-org quota; e acsEndpoint viene rifatto perché gli operatori incollano tutta la connessione ci infila. Verificato: test mvn — 136 test, 0 guasti.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo