CVE-2026-76073
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
Label Studio nie ogranicza punktu końcowego szczegółów adnotacji do organizacji użytkownika żądającego. AnnotationAPI w label_studio/tasks/api.py deklaruje queryset = Annotation.objects.all() i nie zapewnia nadpisania get_queryset, więc domyślne wyszukiwanie pobiera dowolną adnotację po kluczu podstawowym. Uprawnienia wymagane przez widok to annotations.view, annotations.change i annotations.delete, a każdy zalogowany użytkownik spełnia te wymagania, bez testu na poziomie obiektu. Identyfikatory adnotacji są sekwencyjnymi liczbami całkowitymi, więc uwierzytelniony użytkownik jednej organizacji może wyliczać identyfikatory, aby czytać, modyfikować i usuwać adnotacje należące do innych organizacji na tym samym wystąpieniu. Ten sam nieograniczony queryset pojawia się w AnnotationConvertAPI.
Ocena ryzyka
Ryzyko obejmuje nieautoryzowany dostęp do adnotacji innych organizacji, co może prowadzić do naruszenia poufności danych i integralności.
Rekomendacja
Zaleca się natychmiastową aktualizację Label Studio do najnowszej wersji oraz wdrożenie kontroli dostępu na poziomie organizacji.
Inne podatności w Label Studio
Zobacz wszystkie- CVE-2026-85211Wysokie
Label Studio nie stosuje filtrów organizacji podczas rozwiązywania identyfikatorów URI magazynu dla zadań i projektów w punktach końcowych proxy_api.py. Atakujący mogą uzyskać dostęp do obiektów magazynu w chmurze innych dzierżawców, tworząc oddzielną organizację i podając dowolne identyfikatory URI plików do podpisania lub strumieniowania zawartości zasobników.
- CVE-2026-85179Wysokie
Label Studio do wersji 1.23.0 nie waliduje adresów URL webhooków, co pozwala uwierzytelnionym użytkownikom wysyłać żądania do wewnętrznych usług, w tym adresów RFC 1918 i punktów końcowych metadanych chmury. Atakujący mogą tworzyć webhooki kierowane do prywatnych sieci i eksfiltrować dane adnotacji, włączając przesyłanie ładunku w żądaniach wychodzących.
Oryginalny opis (angielski, źródło NVD)
Label Studio does not scope the annotation detail endpoint to the requesting user's organization. AnnotationAPI in label_studio/tasks/api.py declares queryset = Annotation.objects.all() and provides no get_queryset override, so the default lookup retrieves any annotation by primary key. The view's permission_required entries name annotations.view, annotations.change and annotations.delete, and label_studio/core/permissions.py registers every permission with rules.is_authenticated, so the check is satisfied by any logged-in account and no object-level organization test runs. The sibling task endpoint does constrain its queryset with project__organization set to the requester's active organization, which is the boundary this path omits. Annotation identifiers are sequential integers, so an authenticated user of one organization can enumerate identifiers to read, modify and delete annotations belonging to other organizations on the same instance. The same unscoped queryset appears on AnnotationConvertAPI in the same file.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

