CVE-2026-63506
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
W Tina (headless CMS) przed @tinacms/auth 1.1.4 i next-tinacms-azure 15.0.1 funkcja isAuthorized przyjmuje clientID kontrolowany przez żądanie i waliduje token bearer względem wybranej aplikacji TinaCloud zamiast aplikacji skonfigurowanej dla witryny self-hosted. Atakujący z dowolnym kontem TinaCloud może przesłać własny app ID i ważny token do endpointu ofiary, uzyskując dostęp do jej treści.
Ocena ryzyka
Udany atak pozwala na listowanie, odczyt, przesyłanie i usuwanie mediów oraz operacje GraphQL (odczyt, tworzenie, aktualizacja, usuwanie) na treści ofiary bez jej konta i interakcji. Stanowi to poważne naruszenie granic dzierżawcy i poufności danych.
Rekomendacja
Zaktualizuj @tinacms/auth do wersji 1.1.4 lub nowszej oraz next-tinacms-azure do wersji 15.0.1 lub nowszej. Sprawdź, czy nie doszło do nieautoryzowanego dostępu do treści.
Inne podatności w Tina
Zobacz wszystkie- CVE-2026-108260Wysokie
Tina (headless CMS) w wersjach przed 0.2.1 przypisuje wartość node.url bezpośrednio do atrybutu href bez walidacji schematu URL w komponencie tina-markdown. Autor treści może zapisać link używający schematu umożliwiającego wykonanie skryptu, a odwiedzający klikający taki link uruchamia złośliwy skrypt w kontekście witryny. Problem naprawiono w wersji 0.2.1.
- CVE-2026-108259Wysokie
Tina (headless CMS) w wersjach przed 3.0.0 — @tinacms/cli odczytuje wartości gałęzi Git z VERCEL_GIT_COMMIT_REF, GITHUB_BRANCH lub HEAD i wstawia surową wartość do adresu URL API oraz literałów tekstowych w generowanym kodzie JavaScript. Spreparowana nazwa gałęzi zawierająca cudzysłów może przerwać łańcuch i wstrzyknąć wyrażenie wykonywane przy imporcie wygenerowanego modułu podczas budowania podglądu. Problem naprawiono w wersji 3.0.0.
- CVE-2026-108261Krytyczne
W wersjach przed tinacms 3.14.0 i @tinacms/app 2.5.14, trasa podglądu admina /~/* w Tina (headless CMS) może zamienić kontrolowany przez atakującego splat routera hash na iframe z zewnętrznego origin, a expectedOrigin dla kanału GraphQL jest wyprowadzany z tego samego URL. Nieuwierzytelniony atakujący może wysłać spreparowany link do zalogowanego edytora, powodując osadzenie złośliwego origin i traktowanie go jako zaufanego podglądu, co umożliwia wykonywanie odczytów/mutacji GraphQL z poświadczeniami edytora. Problem naprawiono w tinacms 3.14.0 i @tinacms/app 2.5.14.
Oryginalny opis (angielski, źródło NVD)
Tina is a headless content management system. Prior to @tinacms/auth 1.1.4 and next-tinacms-azure 15.0.1, isAuthorized accepts a request-controlled clientID and asks isUserAuthorized to validate the bearer token against that selected TinaCloud app instead of the self-hosted site's configured app. An attacker with any TinaCloud account can submit the attacker's own app ID and valid token to a victim endpoint, causing TinaCloudBackendAuthProvider or an affected media authorized callback to accept the attacker's verified status across the tenant boundary. The vulnerable logic is present in packages/@tinacms/auth/src/index.ts and packages/next-tinacms-azure/src/auth.ts. Successful exploitation permits media listing, reading, upload, or deletion and, when TinaCloudBackendAuthProvider is used, GraphQL read, create, update, and delete operations on the victim's content without a victim account or victim interaction. This vulnerability is fixed in @tinacms/auth 1.1.4 and next-tinacms-azure 15.0.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

