- Verschifft
- 23. September 2026 um 03:08 UTC
- Autor
- Kamo
- Ausschuss
- 6f10239
Die eingehenden Anrufe/SMS-Webhaken von RingCentral wurden ohne Überprüfung verarbeitet: WebhookController routed Telefonie / SMS-Shop-Events direkt in ******************************************** war "Return true; // TODO", und Abonnements wurden ohne Überprüfung erstellt überhaupt. Der Endpunkt ist öffentlich. Jeder, der eine handgearbeitete Nutzlast POSTed könnte eine injizieren Text in beliebige org, schmieden STOP/START-Compliance-Events, lösen Sie einen Inbound-Call-Popup aus für eine beliebige Anzahl (Maut-Betrug neben) oder gefälschte "von" Inhalten, die zu einem Mitglied - und die To-Nummer-Auflösung ("findByFromPhoneNumber") wurde nie ausgespellt, a org, so dass die Nummer eines echten Kunden abgeglichen und dem falschen Mieter gezeigt werden könnte auch durch eine echt aussehende Nutzlast. Fix: - RingCentralWebhookProvisioner generiert jetzt eine zufällige Verifikation pro Instanz (perist in config_json, redigiert von den Einstellungen API), Register Abonnements unter einer pro-instanzen URL (-?instanceId=", passende Teams/JustCall) und sendet das Token als **************** also RingCentral hallt es zurück wie die "Verifikations-Token" Header auf jeder Benachrichtigung. RingCentrals eigenes Abonnement URL-Besitzership Handshake (der "Validation-Token"-Header WebhookController bereits echoes back) ist unberührt - das ist ein anderer Kopfball, der etwas anderes beweist. - **************** überprüft jetzt diesen Header in konstant Zeit und scheitert geschlossen (kein Token noch, kein Kopf, oder ein Mismatch alle verweigern). - WebhookController löst die Instanz von ??instanceId=", erfordert die Verifikations-Token-Check zu bestehen, und nur dann verarbeitet das Ereignis diese Instanz ist org. **************** und **************** beide haben einen verifiziertenOrgId Parameter erhalten: eine To-Nummer Match in einem DIFFERENT org als der verifizierte Webhook wird als unbe unseignet behandelt, genau wie eine Zahl, die niemand besitzt, nie vertraut. - Einsatz Sicherheit (die 3 Live-RingCentral-Instanzen dürfen nicht den eingehenden Verkehr verlieren): jeder Durchgang von RingCentralWebhookProvisioner bringt nun die tatsächliche Sache des Accounts in Einklang Abonnement-Liste - ein Pre-Fix-Abonnement (keine InstanzId/Token) ist DELETED und ersetzt durch eine verifizierte, so dass Live-Instanzen Selbstheilung innerhalb von 30 Pfund des neuen pod immer Leader (es läuft bereits bei der Inbetriebnahme + alle 12h). Für die Lücke vor dass heilen abgeschlossen, WebhookController akzeptiert immer noch ein Ereignis ohne InstanzId überhaupt unter den Pre-Fix, ungekopierte Regeln - aber NUR bis 2026-10-13, und jeder verwenden Sie protokolliert eine laute ************ Linie, so dass der Fallback sichtbar ist und nicht dauerhaft. Nach diesem Datum scheitert es geschlossen wie alles andere. Bericht für den Koordinator: Für die 3 Live-RingCentral-Instanzen keine Handlungsbedarf sie heilen automatisch auf nächster Sendung. Operativ, achten Sie auf ************ in voipservice-Logs nach diesem Einsatz; es sollte Aufhören, innerhalb von Minuten zu erscheinen. Wenn es immer noch in der Nähe von 2026-10-13 erscheint, finden Sie heraus warum das Abonnement dieser Instanz nicht geheilt wurde (RingCentralJwtTokenService Ausfälle vor dem Cutover separat protokolliert werden oder verlängern **************** Tests: ************ (fails geschlossen ohne Token/Header/Header/ falsches Token, akzeptiert das passende Token, Case-unsensitive Header), ************ (generates+persists+reuses das Token; Löst ein Pre-Fix-Abonnement und registriert einen verifizierten Ersatz; hinterlässt einen gesunden Strom Abonnement allein), plus Org-Scoping-Fälle zu VoipCallEventServiceTest hinzugefügt und VoipMessageServiceKeywordTest. Alle vier Mutation-geprüft: Rückführung der relevanten Wache dreht die entsprechende Prüfung rot, Wiederherstellung es wird grün.
