KamoCRM

Deja de confiar en cualquier https://api.-anything como presentador de Docs WOPI

FixDocsService
Se descapó
23 de septiembre de 2026 a las 2:18 UTC
Autor
Kamo
Compromit
71c6d27

k8s/Docs-gestion.yaml's aliasgroup1 fue 'https://api...*'. El alias de Docs matcher (RegexUtil:::getValue, std::regex-match) requiere sólo que la autoridad candidata de WHOLE coinácidos el patrón de QUIEN, y '.*' absorbe lo que sigue a "api". - por lo que esto confió literalmente cualquier dominio en la forma de Internet https://api.-anything, siempre y cuando su propietario ponga una etiqueta de "api". en delantera. El proceso de la Distancia de Docs es el que despresiona a un anfitrión de la WOPI que coincide con el aliado lado del servidor, por lo que un alias de confianza es la exposición de la SSRF, no una comprobación redundante sentada en la parte superior de la Firódica WOPI JWT (el comentario eliminado aquí dijo que el JWT era "la puerta real" . documento/miembro una solicitud actúa según la solución de WopiController antes en esta sucursal, pero nunca Bloqueado HOST Docs trataría como un end de almacenamiento legítimo de WOPI). Sustituido por los huésmos actuales inquilinos vivos: api.kamocrm.com y cualquier subdominio de la misma (kamocrm.com es el propio dominio de Kamo. Nadie fuera de Kamo puede crear un nombre que termina en él, por lo que esta mitad se queda correcto como nuevo *.kamocrm.com orgs se añaden, sin redespliegue. api.demo.kamocrm.com-estilo demo demo anfitriones hoy), unión'd con las filas de org-domains que son raíz (parentemente NULL), activa, propiedad-verificada Y ssl-confirmed a partir de 2026-09-22 - el mismo tres condiciones OrgApiHosts.verifiedRootDomain ya puertas OAuth callback hosts: b11capital.com, breakbeat.store, chinilaw.com, harmonyhomeloans.net, kamo.club, makeitpopsigns.com, optionone.com, sign.pink, tech-life.com. Nueva prueba: DocsAliasHostTest, leyendo el valor de YAML desplegado como texto (mismo convención como **************** y compilarlo con java.util.regex, cuyo Matcher-matches tiene la misma semántica de cuerda entera que std::regex-match. Controlado por mutación: volviendo a 'https://api..*' convierte 3 de sus 6 cajas enrojece roja (dominio atacante arbitrario, un dominio similar al que Simplemente contiene "kamocrm" como una substring, y un truco de suffix tras un huésped conocido). NOT A FULL FIX, reportado como una brecha conocida: un dominio personalizado totalmente nuevo (no un *.kamocrm.com subdodominio) entrar en vivo todavía necesita una línea añadida aquí y un redespliegue. por-domain aliasgroup1...no había, y la razón por la que fue reemplazado por el comodín en el primero lugar (Docs-fork commit b5d260a24e, "Per-domain aliasgroup1... Lista N sólo confiaba 4 inquilinos; nuevos inquilinos como api.optionone.com se 'anfiel WOPI' no autorizado'". Una solución duradera necesita ya sea El remote-config de Docs apuntando a un punto de endpoint en vivo, respaldado por DB, o una automatización que regenera este manifiesto y rueda Docs cada vez que una fila de org-domains se satisface recientemente **************** . . . . . . . . . . . . . . . . . . . . . . . . . . . . También se ha señalado para el coordinador: org-domains tiene una fila para dominio='localhost' propiedad de KamoCRM Inc. en sí, active, sesl.confirmed, que parece datos sobrantes dev/semilla en lugar de un inquilino real dominio; dejado intacto (fuera de alcance para esta solución, y los datos cambiantes de org-domains necesitan el manual Ruta DDL) pero vale la pena echar un vistazo. Suite completa: 731 pruebas verde (fue 725; 6 nuevos).

Todos los cambios

Como lo que ves enviaste?

Todo llega a su espacio de trabajo por sí solo. Comience en el plan gratuito y lea esta página de nuevo en un mes.

Arranzar gratis para siempreVer Precios