CVE-2026-108261
KrytyczneCVSS 9.3Streszczenie
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.
Ocena ryzyka
Atakujący może uzyskać dostęp do chronionej treści lub ją zmodyfikować, wykorzystując sesję zalogowanego edytora, co może prowadzić do naruszenia poufności i integralności danych.
Rekomendacja
Zaktualizuj Tina do wersji tinacms 3.14.0 i @tinacms/app 2.5.14 lub nowszych, aby zapobiec osadzaniu złośliwych iframe.
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-63506Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
Tina is a headless content management system. Prior to tinacms 3.14.0 and @tinacms/app 2.5.14, the /~/* admin preview route in packages/tinacms/src/admin/index.tsx can turn an attacker-controlled hash-router splat into an off-origin iframe URL through packages/@tinacms/app/src/preview.tsx, while packages/@tinacms/app/src/lib/preview-origin.ts derives expectedOrigin from that same URL for the GraphQL message channel in packages/@tinacms/app/src/lib/graphql-reducer.ts. An unauthenticated attacker can send a crafted link to a signed-in editor, cause the admin to frame an attacker origin, and have that frame treated as the trusted preview. The attacker-controlled frame can submit GraphQL reads or mutations that the admin executes with the editor credentials, exposing or modifying protected content. This issue is fixed in tinacms 3.14.0 and @tinacms/app 2.5.14.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

