Podatności Astro
25 znanych podatności CVE w Astro, przetłumaczonych i ocenionych.
- CVE-2026-114128Średnie
Astro to framework webowy dla stron opartych na treści. Przed wersją 7.3.2 pipeline renderowania JSX i MDX traktuje tekstowe dzieci elementów script i style jako zaufany HTML, nie odróżniając treści generowanej przez kompilator od dynamicznych wartości wyrażeń, co pozwala na wstrzyknięcie dowolnego HTML i JavaScript. Problem jest ograniczony do dzieci script i style renderowanych przez astro:jsx, w tym komponentów MDX, i może prowadzić do reflected lub stored XSS w obrębie domeny aplikacji.
- CVE-2026-114127Niskie
W frameworku Astro od wersji 7.1.0 do 7.3.3 generator CSS View Transition po stronie serwera nie utrzymuje właściwości animacji tekstowych w wygenerowanych deklaracjach. Aplikacja przekazująca dane kontrolowane przez atakującego do właściwości takich jak duration, delay, easing, direction, fillMode lub nazwy animacji może pozwolić separatorom CSS zakończyć deklarację i dodać reguły wybrane przez atakującego do renderowanej strony. Wstrzyknięty CSS może ukrywać lub przemieszczać treść, dodawać wygenerowany tekst i fałszować interfejs. Problem naprawiono w wersji 7.3.3.
- CVE-2026-102984Wysokie
Astro to framework webowy dla stron opartych na treści. Przed wersją 11.1.3 adapter @astrojs/node buduje URL żądania z nagłówka Host, a nieprawidłowy port może uczynić ten URL nieprawidłowym. Ścieżka odzyskiwania używa tego samego nieprawidłowego hosta i wyrzuca nieprzechwycony TypeError: Invalid URL przed rozpoczęciem routingu. W domyślnej konfiguracji standalone żądanie zwraca odpowiedź HTTP 500 i serwer kontynuuje działanie, ale gdy włączony jest staticHeaders, synchroniczny handler nie łapie wyjątku i proces Node zostaje zakończony. Proxy i CDN, które odrzucają nieprawidłowe nagłówki Host, zapobiegają dotarciu tej ścieżki do origin. Problem dotyczy tylko dostępności i nie ujawnia danych ani nie pozwala na wykonanie kodu. Problem został naprawiony w wersji 11.1.3.
- CVE-2026-102983Średnie
Astro od wersji 5.2.0 do 8.2.4 ma podatność w adapterze @astrojs/netlify, która generuje wyrażenia regularne dla list dozwolonych obrazów Netlify Image CDN bez zakotwiczenia ich do początku URL. Pozwala to atakującemu kontrolować host URL, podczas gdy dozwolony origin pojawia się tylko w ścieżce lub zapytaniu. Nieuwierzytelnione żądanie do publicznego punktu /.netlify/images może spowodować, że Image CDN pobierze adresy URL wybrane przez atakującego, potencjalnie docierając do usług wewnętrznych. Problem naprawiono w wersji 8.2.4.
- CVE-2026-84376Średnie
Astro to framework webowy dla stron opartych na treści. Przed wersją 7.2.4, Astro usuwał skonfigurowaną ścieżkę bazową (base path) z nazw ścieżek żądań za pomocą sprawdzenia prefiksu bez weryfikacji granicy segmentu ścieżki. Przy bazie "/app", żądanie do "/appX/admin" wewnętrznie rozwiązywało się do chronionej trasy "/admin", podczas gdy middleware obserwował "/appX/admin" w context.url.pathname. W aplikacjach autoryzujących trasy z prefiksem bazowym przez sprawdzanie context.url.pathname, nieuwierzytelniony zdalny atakujący mógł ominąć autoryzację middleware opartą na nazwie ścieżki i dotrzeć do chronionych tras. Problem naprawiono w wersji 7.2.4.
- CVE-2026-73424Średnie
Astro w wersjach od 10.0.3 do 11.0.3 ma podatność w adapterze Vercel, gdzie funkcja /_isr akceptuje x_astro_path na podstawie tylko nagłówka x-vercel-isr, co pozwala nieuwierzytelnionym żądaniom GET renderować trasy chronione tylko przez reguły ścieżek Vercel edge lub podzielone edge middleware.
- CVE-2026-73425Niskie
Astro przed wersją 8.1.2, adapter Netlify konwertuje każdy wpis image.remotePatterns na wyrażenie regularne zapisywane do .netlify/v1/config.json pod images.remote_images dla listy dozwolonych obrazów CDN Netlify. W packages/integrations/netlify/src/index.ts, funkcja remotePatternToRegex() escapuje kropki w wartościach hostname, ale interpoluje dosłowne wartości pathname bez escapowania metaznaków wyrażeń regularnych, takich jak ., +, ?, (, i [, więc restrykcyjna ścieżka, np. /img/v1.0/file, pasuje również do ścieżek sąsiadujących z metaznakami, w tym ścieżek przekraczających segment. Netlify egzekwuje wygenerowane wyrażenie regularne bezpośrednio, a funkcja pomocnicza matchPattern() w Astro nie ponownie weryfikuje żądania, co pozwala na optymalizację obrazów na już dozwolonym hoście, który deklarowana ścieżka miała wykluczyć. Problem naprawiono w wersji 8.1.2.
- CVE-2026-73423Średnie
Astro to framework webowy dla stron opartych na treści. Od wersji 7.0.0 do 7.0.6 komponowalny potok astro/hono instaluje security.checkOrigin tylko przez prymityw middleware(), podczas gdy actions() i pages() mogą wywoływać kod użytkownika niezależnie. Zamontowanie actions() przed middleware(), jak w przykładzie advanced-routing i dokumentacji Cloudflare Hono, pozwala na wykonanie żądań akcji w formacie formularza z innego pochodzenia przed sprawdzeniem pochodzenia, a użycie pages() bez middleware() pomija sprawdzenie dla punktów końcowych i stron na żądanie. Błąd umożliwia ślepą, tylko do zapisu, podatność na fałszowanie żądań między witrynami (CSRF) z użyciem ciasteczek ofiary przeciwko ActionHandler.handle i PagesHandler.handleWithErrorFallback, gdy manifest.checkOrigin jest włączony; atakujący może wywołać akcję zmieniającą stan lub handler punktu końcowego, ale nie może odczytać odpowiedzi z innego pochodzenia. Domyślny niekomponowalny potok astro() nie jest dotknięty. Problem naprawiono w wersji 7.0.6.
- CVE-2026-73422Średnie
Astro to framework webowy dla stron opartych na treści. Od wersji 2.9.0 do 7.1.0 generator CSS dla View Transition po stronie serwera interpoluje właściwości animacji do elementu stylu inline bez ich escapowania dla kontekstów CSS i HTML. Wartość animacji View Transition kontrolowana przez atakującego, taka jak czas trwania, może zakończyć wygenerowany element stylu i wstrzyknąć dowolny HTML lub JavaScript. Dotknięty kod to packages/astro/src/runtime/server/transition.ts; renderTransition przekazuje sheet.toString() do markHTMLString(), podczas gdy addAnimationProperty serializuje czas trwania przez toTimeValue() i obsługuje również easing, direction, delay, fillMode i name. Wykorzystanie wymaga trasy na żądanie lub renderowanej po stronie serwera, aby przekazać dane kontrolowane przez atakującego do definicji animacji View Transition i może wykonać dowolny JavaScript w pochodzeniu dotkniętej aplikacji, umożliwiając dostęp do wrażliwych danych strony i uwierzytelnionych akcji dostępnych dla ofiary. Problem naprawiono w wersji 7.1.0.
- CVE-2026-59730Niskie
W Astro w wersjach od 8.1.0 do 11.0.1, gdy opcja trailingSlash: 'always' jest skonfigurowana, serwer standalone @astrojs/node dodaje końcowy ukośnik do ścieżek żądań i wysyła przekierowanie 301. Ścieżki zaczynające się od /\ (ukośnik-odwrotny ukośnik) nie są rozpoznawane jako wewnętrzne, więc serwer odsyła surową ścieżkę w nagłówku Location. Ponieważ przeglądarki traktują \ jako / zgodnie ze specyfikacją WHATWG URL, wynikowe przekierowanie może prowadzić do zewnętrznego hosta.
- CVE-2026-59728Średnie
Astro w wersjach 1.0.0 do 4.0.18 ma podatność polegającą na braku escape'owania znaków XML w polach source.title i enclosure.type w generatorze RSS. Atakujący kontrolujący te wartości może wstrzyknąć dowolny XML do kanału RSS, co może prowadzić do fałszywych metadanych, przekierowań na złośliwe strony lub błędnego parsowania przez czytniki RSS. W trybie SSR zanieczyszczony kanał jest serwowany każdemu subskrybentowi. Naprawiony w wersji 4.0.19.
- CVE-2026-59729Średnie
Astro to framework webowy dla stron opartych na treści. Wersje przed 7.0.6 są podatne na XSS poprzez nieuciekające nazwy atrybutów spread w renderHTMLElement. Poprawka dla CVE-2026-54298 dodała zabezpieczenie INVALID_ATTR_NAME_CHAR w addAttribute(), ale druga ścieżka renderowania atrybutów, renderHTMLElement(), nie została zaktualizowana i interpoluje nazwę atrybutu bez ucieczki, co pozwala na atak XSS. Problem został naprawiony w wersji 7.0.6.
- CVE-2026-59727Niskie
W Astro w wersjach od 3.10.0 do 7.0.3, gdy dyrektywy transition:persist, transition:scope lub transition:persist-props są zastosowane do komponentu hydratowanego po stronie klienta (client:*), Astro kopiuje wartość dyrektywy do renderowanego elementu <astro-island> bez kodowania HTML. Jeśli programista odzwierciedli dane kontrolowane przez atakującego w jednej z tych dyrektyw, atakujący może wyrwać się z atrybutu i wstrzyknąć dowolny kod HTML/JavaScript do wyjścia renderowanego po stronie serwera, co prowadzi do odbitego XSS.
- CVE-2026-59731Wysokie
Astro w wersji 6.4.7 zawiera podatność polegającą na podejmowaniu decyzji autoryzacyjnych na częściowo zdekodowanej ścieżce URL po osiągnięciu limitu iteracyjnego dekodera. Późniejsze dopasowanie reguł przepisywania wykonuje dodatkową operację decodeURI(), co może umożliwić ominięcie zabezpieczeń i dostęp do chronionych tras.
- CVE-2026-45028Średnie
Astro w wersjach przed 6.1.10 używał szyfrowania AES-GCM do ochrony parametrów props i slots server islands, ale nie wiązał szyfrogramu z docelowym komponentem ani typem parametru. Atakujący mógł odtworzyć zaszyfrowaną wartość props (p) jednego komponentu jako wartość slots (s) innego komponentu lub odwrotnie, co przy surowym HTML w slotach może prowadzić do XSS. Podatność występuje, gdy aplikacja używa server islands, dwa komponenty współdzielą nazwę klucza dla prop i slot, a atakujący kontroluje wartość nakładającego się prop.
- CVE-2026-41067Średnie
W Astro przed wersją 6.1.6 funkcja defineScriptVars w potoku renderowania po stronie serwera używa wrażliwego na wielkość liter wyrażenia /<\/script>/g do sanityzacji wartości wstawianych do inline'owych tagów <script> przez dyrektywę define:vars. Parsery HTML zamykają <script> bez rozróżniania wielkości liter i akceptują spacje lub / przed zamykającym >, co pozwala obejść sanityzację payloadami takimi jak </Script>, </script > lub </script/> i wstrzyknąć dowolny HTML/JavaScript. Poprawka jest w wersji 6.1.6.
- CVE-2025-66202Średnie
Astro to framework webowy. Wersje 5.15.7 i starsze mają obejście polegające na podwójnym kodowaniu URL, które pozwala nieuwierzytelnionemu atakującemu ominąć kontrole uwierzytelniania oparte na ścieżkach w middleware Astro i uzyskać nieautoryzowany dostęp do chronionych tras. Poprawka w wersji 5.15.8 jest niewystarczająca, ponieważ dekoduje tylko raz, więc atakujący nadal mogą używać podwójnie zakodowanych adresów URL do obejścia uwierzytelniania.
- CVE-2025-65019Średnie
Astro to framework webowy. W wersjach przed 5.15.9, przy użyciu adaptera Cloudflare (@astrojs/cloudflare) z output: 'server', endpoint optymalizacji obrazów (/_image) zawiera krytyczną podatność w funkcji isRemoteAllowed(), która bezwarunkowo zezwala na adresy URL z protokołem data:. Umożliwia to ataki XSS poprzez złośliwe ładunki SVG, omijając ograniczenia domen i politykę CSP.
- CVE-2025-64765Średnie
W Astro przed wersją 5.15.8 istnieje niezgodność między normalizacją ścieżek żądań do routingu a odczytem ścieżki przez middleware. Astro stosuje decodeURI(), a middleware używa context.url.pathname bez tej normalizacji, co może pozwolić na obejście kontroli walidacji.
- CVE-2025-64764Wysokie
W frameworku Astro przed wersją 5.15.8 występuje podatność typu reflected XSS, gdy w aplikacji używana jest funkcja server islands, niezależnie od intencji szablonów komponentów. Problem został naprawiony w wersji 5.15.8.
- CVE-2025-64757Niskie
Astro to framework webowy. W wersjach przed 5.14.3 zidentyfikowano podatność w serwerze deweloperskim Astro, która umożliwia dowolny odczyt plików lokalnych poprzez endpoint optymalizacji obrazów. Podatność dotyczy środowisk deweloperskich Astro i pozwala zdalnym atakującym odczytać dowolny plik obrazu dostępny dla procesu Node.js w systemie hosta. Problem został naprawiony w wersji 5.14.3.
- CVE-2025-64745Niskie
W serwerze deweloperskim frameworka Astro występuje podatność Reflected XSS na stronach błędów, gdy używana jest opcja konfiguracyjna `trailingSlash`. Atakujący może wstrzyknąć dowolny kod JavaScript wykonujący się w przeglądarce ofiary poprzez spreparowany URL. Podatność dotyczy wyłącznie serwera deweloperskiego, nie buildów produkcyjnych, i została naprawiona w wersji 5.15.6.
- CVE-2025-64525Średnie
Astro to framework webowy. W wersjach od 2.16.0 do 5.15.5 (wyłącznie) wykorzystujących renderowanie na żądanie nagłówki żądania x-forwarded-proto i x-forwarded-port są używane bez sanityzacji do budowania URL. Prowadzi to do obejścia chronionych tras opartych na middleware, DoS przez zatruwanie cache, SSRF, zanieczyszczenia URL (potencjalny SXSS) oraz obejścia WAF. Wersja 5.15.5 zawiera poprawkę.
- CVE-2025-59837Wysokie
Astro to framework webowy z wbudowanym proxy obrazów. W wersjach od 5.13.4 do 5.13.10 walidacja domeny proxy obrazów może zostać ominięta przez użycie backslashy w parametrze href, co pozwala na wysyłanie żądań po stronie serwera do dowolnych adresów URL. Może to prowadzić do SSRF i potencjalnie XSS. Podatność wynika z niepełnej poprawki CVE-2025-58179. Naprawione w 5.13.10.
- CVE-2025-61925Średnie
Astro to framework webowy. W wersjach przed 5.14.2 Astro odzwierciedla wartość nagłówka X-Forwarded-Host w wynikach przy użyciu Astro.url bez walidacji, co pozwala na manipulację tą wartością przez złośliwe żądanie. Może to prowadzić do przekierowania na złośliwą stronę lub przechwycenia danych logowania, zwłaszcza w konfiguracjach z proxy buforującym. Wersja 5.14.2 zawiera poprawkę.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

