KamoCRM

Session liest, Ticket-Mutationen und öffentliche Schlüssel hören nicht mehr dem Anrufer zu, das Sagen zu haben

FixMediaService
Verschifft
23. September 2026 um 01:49 UTC
Autor
Kamo
Ausschuss
f7b2bd5

Vier verwandte Löcher, alle die gleiche Form: eine Anfrage trug eine authentifizierte Mitglied, und das wurde als genug behandelt. - **************** SessionFacesController.faces und ************ serviert eine Sitzung Transkript, Gesichter, Dienstplan oder Quittungen an jedes authentifizierte Mitglied von ANY org, ohne jeglichen Mitgliedercheck. Das gleiche Mitgliedschaftstor hinzugefügt **************** bereits verwenden, plus die eine rechtmäßige Nicht-Mitglieder-Fall: ein Antraggeber von SUPPORT_TICKET, Bevollmächtigter oder Orgs eigenes Support-Personal (Spiegel SupportTicketService). get TicketDetail's bestehende Regel). SYSTEM_BUG und EXEC2EXEC bekommen nichts extra: kamo-internal liest auch nie durch diese Endpunkte (bestätigt gegen App/Api/Support/System-Bugs und app/api/support/exec2exec), also eine einfache Mitgliedschaftsverweigerung ist richtig und hält diesen Controller aus dem Geschäft der Re-Herivierung SystemBugThreadService Reporter Redaktion. getMessages' "Grenze" wird nun auf 1..100 geklemmt; <=0 wurde verwendet, um durchzufallen eine grenzenlose Lektüre der ganzen Geschichte. - MediaController.createMessage akzeptiert jede Client-supplied .imgId' in die Anlageschleife mit einem nackten imgRepository.findById und ohne Eigentum Check . Img ids sind dicht, so dass jede Datei auf der Plattform (Docs, Patient Charts, Tresor-Uploads) war an einem Chat anschließen, der Angreifer war bereits in, dann wieder lesbar zurück aus der Nachricht. Jetzt erfordert die Img gehören zu die eigene Organisation des Absenders UND entweder als eigene dieser Sitzung aufgezeichnet werden attachment (assocId=CHAT_ATTACHMENT, assocObjectId=the session guid . siehe ChatAttachmentService#attach) oder wurden vom Absender erstellt sich selbst. Die gleiche Methode SUPPORT_TICKET/SOCIAL Zweige, zuvor offen für jedes Mitglied auf der Theorie, dass Besucher und Systemmitglieder abgedeckt sie, benötigen jetzt Ticket /org Agent Zugriff oder Verbindung-Ordnung anonyme Besucher erreichten diesen Endpunkt nie; sie posten durch PublicChatControllers eigene, separat authentifizierte Route. - ************ und jeder WebChatIntegrationController handler überprüft nur "in einigen org signiert". Jetzt benötigen Sie die richtigen Kamo-internal eigenen Bildschirme Gate auf (MANAGE_ACCESS_RULES für API-Schlüssel, MANAGE_CHAT_SETTINGS für das Widget), und Public-Chat-Key-Aktionen werden gegen die gleiche zulässige Liste validiert APIManager.tsx bietet ein handgefertigtes Zielfernrohr (z. API_SIGNATURE, die Die öffentliche E-Zeichen-API von esigservice akzeptiert auf eigene Faust) wird nun eher abgelehnt als wörtlich gespeichert. - SupportTicketService's ************ Mutationen überprüften, ob der Anrufer ACCEPT_SUPPORT_TICKETS oder MANAGE_SUPPORT in THEIR OWN Organisation, nie, dass es das Ticket war eigene zugewiesene org - eine Unterstützungsleitung bei org A könnte auflösen, neu vergeben oder Escalate org B's Ticket per ID. requireTicketAccess-Mögsel erhaltenTicketDetail: Antragsteller, Bevollmächtigter oder das eigene Support-Personal der org. StompDestinationAuthz wacht jetzt /topic/support/agent/{memberId' das gleiche wie jedes andere Thema pro Person hier ist (subskriptiv nur - Gleichheit; send: komplett abgelehnt, passender SupportStompRelayController ist die nur legitimer Schriftsteller). Tests: SupportTicketAccessControlTest und ************ pin die neuen Regeln direkt (Mutation verifiziert: Kastrung ************ wird davon rot); StompDestinationAuthzTest und ************ Cover die STOMP-Wächter und aktualisierte Call-Sites. Voller "mvn test" grün (1023 Tests) vor dieser Übergabe.

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen