Cierre un agujero de cruce de buzón y seis defectos más de Equipos

FixVOIPService
Se descapó
5 de agosto de 2026 a las 7:24 UTC
Autor
Kamo
Compromit
c7cb180

Revisión adversarial de 6df0008 confirmó 24 hallazgos. Los más importantes: CRITICAL cualquier miembro podría borrar el correo de un colega. Equipos de ids de correo de voz estaban compuesta como "Emailbox-graphMessageId", y mark-read / delete / gottch split the identificador suministrado por la llamada y utilizó su buzón medio literalmente como /users/-mailbox. en el La aplicación de org token - que puede llegar a cada buzón en el inquilino. El Correos.messageLas parejas de mensajes fueron repartidas por GET /instances/-id-/voicemails, por lo que ni siquiera era un juego de adivinanzas. El buzón ahora se resuelve únicamente de la convocatoria la propia conexión de Microsoft de miembro y no se deriva de nada de un cliente envía; el trabajo org-scoped (sincronización, salud) no resuelve buzón y no lee ninguno. Eso también detiene la sincronización de la instancia caminando el buzón de cada colega en el token de la aplicación. Dejando el buzón del id corrige dos defectos confirmados más de forma gratuita: el los ids eran chars no 190-240 contra una columna VARCHAR(128) (cada persisten fracasaron), y el '" hizo que Tomcat rechazara la URL con un enrutado de 400 antes de la primavera, así que mark-read, Archivo y borrar nunca llegó al servidor. Los ids de extensión se mueven a 'A' para la misma razón, y el sufijo de enrutado de los equipos (1425...;ext=1234, 21 carbones) es ahora recortado para encajar el VARCHAR de EXTENSION-NUMBER en lugar de fallar la sincronización. ALTO La historia de llamadas estaba silenciosamente vacía para la mayoría de los miembros. getPstnCalls es un Alimentación de ancho de inquilino sin filtro por usuario, y el código tapó el número de mano en 2000 filas ANTES de filtrar, por lo que en cualquier inquilino con más de 2000 llamadas PSTN en 90 días La gorra era consumida por las filas de otras personas. Filtrar ahora ocurre durante la prójimaga y se detiene tan pronto como la página solicitada esté llena. Las notificaciones de gráficos se procesaron en línea en el hilo de respuesta: N Recorriente truco secuencial contra un presupuesto de reconocimiento de tres segundos. pasado 15% respuestas lentas en diez minutos El gráfico marca la letra final "gota" y descartes notificaciones durante diez minutos. Validación se mantiene en línea; la obra se traslada a enlazaba albacea. ALTO - el Estado miembro-conexión llevaba un miembroId, pero nada lo vinculó a la persona completando el inicio de sesión, para que un miembro pudiera entregar su URL de conexión a un colega y termina con la identidad de los equipos de la colega en su propia fila. Yo--- La conexión ahora requiere el inicio de sesión de Microsoft para coincidir con el correo electrónico Kamo del miembro; conectarse en nombre de alguien se permite y se registra en el estado. ALTO - MemberVoipConfigControlor confió en el camino miembro de la direcciónId sin control de org GET o PUT, y nada de corriente suministrada uno: un IDOR de inquilino cruzado sobre cada La configuración VOIP del miembro, ahora incluyendo su objeto Entra id. Preexistente, pero esto comprometerse es lo que puso una identidad en esa carga útil. También: EquiposNeedsReconnectException devolvió 500 en lugar de 409 para los esperados Estado "no conectado todavía"; el endpoint ACS estaba sin validar la configuración del operador que un El token delegado llamaba simbó a (ahora esquema-y host-pinned); concurrente Suscripción podría huérfanse de una suscripción de gráficos contra los 100 por oreja cuota; y acsEndpoint se redacta porque los operadores pegan toda la conexión cuerdas en ella. Verificado: prueba mvn - 136 pruebas, 0 fallos.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios