KamoCRM

VOIPService の内部の SMS テンプレート API を継承し、クライアント自身の X-Internal-Auth を転送しません

FixAPIService
出荷済み
2026年9月23日 10:24 UTC
プロフィール
Kamo
コンテンツ
8950a17

同じ信託境界の2つの関連ギャップ。 /api/voip/sms/templates/** は /api/voip/** によって卸売を転送しました ワイルドカード。 VOIPService の内部AuthFilter は接頭辞 (and) をガードします。 /api/bulktext/send と共有された X-Internal-Auth の秘密、および SmsTemplateService はリクエストボディで一度運ばれる org id を信頼します そのチェックパス -- 追加のテナントチェックはありません。 それを作った 内部だけの表面のインターネット到達可能、単一の共有の秘密として 見知らぬ人とすべてのテナントのSMSの間で立っている唯一のもの テンプレート。 オートアウトマッピングを追加, 既に使用した同じメカニズム /api/voip/calls/** および /api/voip/recordings/** 上記: より具体的 ワイルドカードよりも、宣言順に関係なく勝ち、 転送の代わりに404を返します。 kamo-internal はこの下で何も呼び出しません パスは今日(元/本物と混同)、使用される正当なものは何もありません このゲートウェイは到達します。 別々に: InboundHeaders は X-Internal-Auth を除去しないため、クライアント 共有秘密を推測したり漏れたりすると、転送() を介してそれを乗り越えることができます。 forwardWebhook() または ForwardCallback() は、どのサービスでも、 内部AuthFilter はもう一方の端にありました。 IDENTITY HEADERSに追加 -- それは特権(「私は内部インフラを信頼しています」)を主張します 既存のエントリがアイデンティティを主張し、それをドロップするのと同じ方法は安全です 構造によって:合法的に機能するこのサービスのすべてのコントローラー 内部呼び出し者として (PublicChatController, PublicApiController, ソーシャルWebhookController、VoipRecordingUploadController、 VoipCallEventController, PublicChatKeyResolver は、そのアウトバウンドを構築します ヘッダーをゼロから設定し、このサービスの OWN 設定されたシークレット -- InboundHeaders.copyInto を呼び出していないため、影響を受けません。 お問い合わせ エントリーは、Traefikのストリップ識別ヘッドミドルウェアよりも広く、 まだエッジでストリップしません。 フォローアップとして、 ここでクロスレポ変更で推測するのではなくklusterservices. VoipSmsTemplatesCarveOutTest は、マッピングとその 404 動作をカバーしています。 アイデンティティヘッダーストリッピング 既存のスプーフィング要求ハーネスのテストも すでにドライブしているすべてのケースで推測されたX-Internal-Authを送信します。 タイトル、バルクテキストのwebhook、OAuthのコールバック) 演習をタイプするすべてのフォワードパスにカバー, だけでなく、新しいもの. 変更を反転すると、対応するテストがすぐに失敗します.

すべての変更

配送を見るのが好きですか?

自分のワークスペースに到着します。 無料プランをスタートし、月に再度このページをお読みください.

永遠に無料で始める料金を見る