KamoCRM

Eseguire l'API interno di VOIPService SMS-template e non inoltrare mai un client X-Internal-Auth

FixAPIService
Shipped
23 settembre 2026 alle ore 10:24 UTC
Author
Kamo
Commit
8950a17

Due lacune connesse nello stesso limite di fiducia. /api/voip/sms/templates/** è stato inoltrato all'ingrosso dal /api/voip/** Wildcard. VOIPService's InternalAuthFilter protegge che prefisso (e /api/bulktext/send) con un segreto X-Internal-Auth condiviso, e SmsTemplateService si affida all'org id trasportato nel corpo di richiesta una volta quel check-pass -- non c'è ulteriore controllo per-tenant. Questo ha fatto accesso a Internet di sola superficie interna, con un unico segreto condiviso come l'unica cosa in piedi tra uno sconosciuto e ogni inquilino SMS modelli. Aggiunto un carve-out mappatura, lo stesso meccanismo già utilizzato per /api/voip/calls/** e /api/voip/recordings/** sopra di esso: più specifico che la wildcard, così vince indipendentemente dall'ordine di dichiarazione, e restituisce 404 invece di inoltrare. kamo-internal non chiama nulla sotto questo percorso oggi (confermato contro origine/principale), quindi nulla di legittimo usato questo gateway per raggiungerlo. InboundHeaders non ha mai spogliato X-Internal-Auth, quindi un cliente che indovinato o trapelato il segreto condiviso potrebbe passare attraverso avanti(), forwardWebhook() o forwardCallback() direttamente oltre qualsiasi servizio L'InternalAuthFilter era dall'altra parte. Viene aggiunto a IDENTITY HEADERS -- afferma un privilegio ("Sono affidabile infrastruttura interna") il allo stesso modo le voci esistenti affermano un'identità, e cadere è sicuro per costruzione: ogni controller in questo servizio che agisce legittimamente come chiamante interno (PublicChatController, PublicApiController, SocialWebhookController, VoipRecordingUploadController, VoipCallEventController, PublicChatKeyResolver) costruisce il suo outbound intestazioni da zero e imposta OWN di questo servizio configurato segreto -- Nessuno di loro chiama InboundHeaders.copyInto, quindi nessuno è interessato. Questo l'ingresso è più ampio del middleware strip-identity-headers di Traefik, che non lo spoglia ancora al bordo troppo; notando che come follow-up per klusterservices piuttosto che indovinare a un cambio cross-repo qui. VoipSmsTemplatesCarveOutTest copre la mappatura e il suo comportamento 404. IdentityHeaderStripping Ora anche l'imbracatura di spoofed-request esistente di Test invia un X-Internal-Auth indovinato su ogni caso che già guida (billing, i diritti, il webhook di testo in massa, il callback di OAuth), quindi questo è coperto su ogni percorso in avanti che tipo esercita, non solo uno nuovo. Reverting o cambiamento fallisce immediatamente il test corrispondente.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing