- Szycy
- 23 września 2026 01:16 UTC
- Autor
- Kamo
- Pochęt się
- 6488bd4
RagSearchController read orgId/memberId/memberType z ciała JSON na każdym Ścieżka, w tym prośby uwierzytelnione przez sesję, a nie X-wewnętrzny Auth. Podpisany członek z tylko VIEW_KB_ARTICLES może umieścić Inny id org, lub inny członek, w ciele i szukaj tego. Baza wiedzy orgga lub prywatne notatki tego członka bezpośrednio przez Qdrant's Filtry – sesja dowiodła, kto pytał, ale nigdy nie ograniczał, co oni Można by zapytać. /reindex/orgId i /status/orgId miały ten sam kształt Poziom up: ścieżka orgId została zaufana, gdy dzwoniąca trzymała MANAGE_KB_SETTINGS W "niekim" org, bez sprawdzania, że to był ich. Co gorsza, SessionHelper.HasRight wrócił na sesję z a. Lista pustych praw i ponownie dla osoby bez pola praw w ogóle, więc prawo Kontrole pilnuje wszystkich trzech punktów końcowych były pomijane przez to samo brakujące pole. Reguła teraz: na ścieżce sesji, org/członek/członekTyp wywodzi się z Tylko sesja - dodana do SessionHelper), oraz Reindex/status dodatkowo wymaga ścieżki orgId do równego własnego sesji Org. hasRight nie zawodzi, dopasowując KBService. Ścieżka X-Internal-Auth jest Niezmieniony – AIService nie ma własnej sesji i nadal musi wymieniać, kim jest Poszukiwanie w ciele. Przełączył również tajne porównanie X-Internal-Auth z String.equals do WiadomościDigest.is Równa różnica czasu nie może ujawnić tajnego bajtu W pewnym momencie. Testy: SessionHelperRightsTest przypina przypadki zamknięte fail (lustrza KBService's Apartament). RagSearchControllerAuthzTest przypina błąd zaufania do ciała i Kontrola reindex/stateus org i oddzielnie udowadnia, że ścieżka wewnętrzna nadal jest Zaufaj ciału (jedynym sposobem, aby to nazwać). Każdy był zweryfikowany na czerwono W przypadku kodu przedrostka przed tym zatwierdzeniu.
