- Se descapó
- 23 de septiembre de 2026 a las 10:24 UTC
- Autor
- Kamo
- Compromit
- 8950a17
Dos lagunas relacionadas en la misma frontera de confianza. /api/voip/sms/templates/** se remitió al por mayor por /api/voip/** comodín. VOIPService's InternalAuthFilter guarda que prefijo (y /api/bulktext/send) con un secreto X-Internal-Auth compartido, y SmsTemplateService confía en el org id llevado en el cuerpo de solicitud una vez Ese cheque pasa... no hay más cheque por inquilino. Eso hizo un acceso a internet solo en superficie interna, con un solo secreto compartido como lo único que se interpone entre un extraño y el SMS de cada inquilino plantillas. Añadido una carve-out mapping, el mismo mecanismo ya utilizado para /api/voip/calls/** y /api/voip/registros/** por encima de él: más específico que el comodín, por lo que gana independientemente del orden de declaración, y devuelve 404 en lugar de reenvío. kamo-internal no llama nada debajo de esto camino hoy (confirmado contra el origen/principal), para que nada legítimo utilizado Esta puerta de entrada para llegar a ella. Por separado: InboundHeaders nunca despojó X-Internal-Auth, así que un cliente que adivinar o filtrado el secreto compartido podría llevarlo por delante (), forwardWebhook() o forwardCallback() justo después de cualquier servicio InternalAuthFilter estaba en el otro extremo. Se añade a IDENTITY-HEADERS -- afirma un privilegio ("Estoy de confianza en la infraestructura interna") el de la misma manera que las entradas existentes afirman una identidad, y dejarla es segura por construcción: todo controlador en este servicio que actúa legítimamente como el que llama interna (PublicChatController, PublicApiController, SocialWebhookController, VoipRecordingUploadController, VoipCallEventController, PublicChatKeyResolver) construye su salida cabeceras de cero y establece el secreto configurado de este servicio... ninguno de ellos llama InboundHeaders.copyInto, así que ninguno se ve afectado. Esto entrada es más amplia que el middleware de Traefik, que todavía no lo desnuda en el borde también; notando que como seguimiento para klusterservices en lugar de adivinar en un cambio de back-repo aquí. VoipSmsTemplatesCarveOutTest cubre el mapeo y su comportamiento 404. IdentityHeaderStrippingEl arnés de solicitud despreciado existente ahora también también envía un X-Internal-Auth adivinado en cada caso que ya conduce (facturación, derechos, el webhook de autobios, el callback de OAuth), así que esto es cubierta en cada camino a seguir que teclea los ejercicios, no sólo uno nuevo. La reversión de cualquiera de los cambios falla la prueba correspondiente inmediatamente.
