KamoCRM

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

FixAPIService
Spegnimento
23 settembre 2026 alle ore 10:24 UTC
Autore
Kamo
Impegno
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.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo