- Se descapó
- 23 de septiembre de 2026 a las 1:49 UTC
- Autor
- Kamo
- Compromit
- f7b2bd5
Cuatro agujeros relacionados, todos de la misma forma: una petición llevaba autenticado miembro, y eso fue tratado como suficiente. - **************** SessionFacesController.faces y **************** serví una sesión transcripción, caras, lista o recibos a CUALQUIER miembro autenticado de CUALQUIER org, sin cheque de membresía en absoluto. Añadida la misma puerta de membresía ************* ya use, además de uno caso no miembro legítimo: un solicitante, cesionario, o el El propio personal de apoyo de org asignado (espejo de SupportTicketService. getTicketDetail's existing rule). SYSTEM-BUG y EXEC2EXEC no consiguen nada extra: kamo-internal nunca lee tampoco a través de estos endpoints (confirmado contra app/api/support/system-bugs y app/api/support/exec2exec), así que a La negativa de la membresía está en lo cierto y mantiene a este controlador fuera de la negocio de volver a conducir la redacción del reportero de SystemBugThreadService. getMessages' "limit" se sujeta a 1,100; .=0 utilizado para caer en una lectura sin límites de toda la historia. - MediaController.createMessage aceptó cualquier cliente-suministrado en el bucle de fijación con un imgRepository.findById y ninguna propiedad Img ids son densos, por lo que cualquier archivo en la plataforma (docs de préstamo, paciente gráficos, subidas de bóveda) se aplistó a una charla que el atacante ya estaba En, luego legible de la espalda del mensaje. Ahora requiere que el Img pertenezca a la propia organización del remitente Y cualquiera de ser registrado como el propio de esta sesión el accesorio (asocisóstol Id=CHAT-ATTACHMENT, assocObjectId=el guid de sesión . ver ChatAttachmentService-attach) o han sido creados por el remitente ellos mismos. Las ramas SUPPORT-TICKET/SOCIAL del mismo método, anteriormente abierto a cualquier miembro sobre la teoría de que los visitantes y miembros del sistema cubrieron ahora a ellos, requiere acceso a agente de ticket/org o membresía de conexión-org. visitantes anónimos nunca llegaron a esta variable; publican a través de La propia ruta de PublicChatController, activada por separado. - **************** y cada uno WebChatIntegrationEl manejador de controlador de controló sólo "firmado en algún org". Ahora requiere la puerta de las pantallas del kamo-internal correcta en (MANAGE-ACCESS-RULES para las claves de API, MANAGE-CHAT-SETTINGS para el widget), y los visores de clave pública se validan con la misma lista de posibilidades APIManager.tsx ofrece un alcance artesanal (por ejemplo. API-SIGNATURE, que La API pública de firma electrónica de esigservice acepta por su cuenta) es ahora más bien rechazada que almacene literalmente. - SupportTicketService's ************* mutaciones comprobaron que la persona que llama tenía ACCEPT-SUPPORT-TICKETS o MANAGE-SUPPORT en la organización THEIR OWN, nunca que fuera el boleto propia asignada org - una pista de apoyo en org A podría resolver, reasignar o escalar el billete de org B por id. requireTicketAccess mirrors getTicketDetail: solicitor, cesionario, o el propio personal de apoyo de la org asignado. StompDestinationAuthz ahora guarda /topic/support/agent/Agent/-MesId- lo mismo Quédense aquí está (suscribirse: la igualdad de miembros solamente; enviar: rechazado de plano, ajustando SupportStompRelayController siendo el sólo escritor legítimo). Pruebas: SupportTicketAccessControlTest y ************* alquitra las nuevas reglas directamente (mutación verificada: castrar ********** *** . rojo); StompDestinationAuthzTest y ************* portada el guardia STOMP y los sitios de llamadas actualizados. Prueba completa de verde (1023 pruebas) antes de esta comisión.
