KamoCRM

Scope Rollen, Mitgliederzugriff und Profil schreibt an die org des Anrufers

FixSecurityService
Verschifft
23. September 2026 um 12:35 UTC
Autor
Kamo
Ausschuss
80ec053

Fünf Lücken lassen ein angemeldetes Mitglied außerhalb ihrer eigenen Organisation zu erreichen, oder erreichen eine Konto des Kollegen, ohne richtige Prüfung: - ************ hat überhaupt keine Sitzung gelöst. Das Tor vorwärts /api/security/** ohne eigene Auung, so dass jeder, der eine Rolle UUID innehat, könnte Die Rollenrechte einer Organisation umschreiben oder löschen. createRole gelöst an, aber nein rechts, so dass jedes Mitglied eine neue Rolle mit willkürlichen Rechten vorladen könnte. Alle drei jetzt erfordern CONFIGURE_SYSTEM (oder ein offenes Gottesfenster) und, für Update/Löschen, dass die Rolle gehört zur Ruferorg-Org - die gleiche Regel DepartmentController und JobTitleController bereits auf ihren eigenen Schreibpfaden durchsetzen, auf der gleichen Seite für essentielle Einstellungen. - **************** hat nie die Organisation des Anrufers gelöst, so dass ein Besitzer von org A die Zugriffsstufe oder den Eigentümerstatus per Mitglieds-ID festlegen könnte nur, getMemberAccess überprüft nur, ob eine Sitzung existierte. Beide zielen nun auf das Ziel zu dem Caller org (getMemberAccess behält seine bisherige Breite für eine gleiche-Orll lesen). updateMemberAccess liest auch einen Sitzungsschlüssel ("MID"), den KSessionService nie schreibt, so jeder echte Anruf warf und 500'd vor dem Erreichen entweder der alte anfällige Code oder die neue Überprüfung; in der gleichen Bearbeitung behoben, so dass die org-scoping-Fix tatsächlich erreichbar ist. ************ (kamo-shared-library, schon gedrängt) bekommt das Gleiche Organisation überprüfen als Verteidigung in der Tiefe. - **************** lässt jedes same-org-Mitglied einen Kollegen umschreiben ************ ohne richtige Prüfung nur die Felder, die auf dem Benutzerkonto (Name/DOB/phonetic) leben, und diese leben auf Mitglied statt. members.email verdoppelt sich als Login- und Passwort-Recovery-Identifikation ************ und der Recovery Flow mailt den Reset-Link zu welche Adresse auch immer auf dem Formular und nicht die eigene Adresse des Kontos war, so dass dies war ein Weg zur Umleitung, wo der Passwort-Reset-Link eines Kollegen geliefert wird. Gated auf isSelf || MANAGE_MEMBER_SECURITY, Spiegelung kamo-internal's ownE-SelbstOrSecurityAdmin Gate auf dem Geschwister-BenutzernameAlias Feld. - LeadCreditController /credits/distribute und /credits/zuzuteilungen org-checked teamMemberId aber geladener AnbieterId/vendorProductId (und, in createAllotment, marketId) von findById allein, also ein UUID aus dem Lead-Vendor-Katalog einer anderen Organisation oder Die Marktkonfiguration funktionierte ebenso gut wie die des Anrufers. Gleiche Org-Gleichstellungs-Check als der Fall von Team-Mitgliedern (über die Organisation des Verkäufers; ein Produkt über seinen Verkäufer; ein Markt über seine eigene Organisation), gleiche 404 Antwort. Eine Testklasse pro Oberfläche, jede mit einem Fall, der ohne seine Fixierung scheitert (Mutation- überprüft: rückgängig gemacht, bestätigt rot, wiederhergestellt) plus ein gleich-Org Erfolg Fall so legitim Anrufer, die durch die echten Kamo-inneren Bildschirme gehen (wesentliche Einstellungen Rollen Registerkarte, Die Sicherheits-/Zugangs-Tabs des Mitgliedsprofils, Verwalten von Credits) haben immer noch Erfolg.

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