CVE-2026-106104
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Quasar Framework przed wersją 2.23.3 przekazuje nieograniczony nagłówek User-Agent do funkcji getMatch() w Platform.parseSSR(), co w połączeniu z wyrażeniami regularnymi powoduje super-liniowe cofanie (backtracking) i blokowanie pętli zdarzeń Node.js. Złośliwy nieuwierzytelniony żądanie może opóźnić wszystkie inne żądania SSR. Problem dotyczy tylko trybu SSR; inne cele (SPA, PWA itp.) nie są podatne.
Ocena ryzyka
Atak DoS na aplikacje SSR oparte na Quasar, powodujący opóźnienia lub całkowitą niedostępność usług dla wszystkich użytkowników.
Rekomendacja
Zaktualizuj Quasar Framework do wersji 2.23.3 lub nowszej, która zawiera poprawkę ograniczającą przetwarzanie nagłówka User-Agent.
Inne podatności w Quasar Framework
Zobacz wszystkie- CVE-2026-106102Krytyczne
Quasar Framework przed wersją 2.22.0 zawiera podatność w serializerze getHead() używanym tylko w SSR, która nie koduje odpowiednio wartości dostarczanych przez useMeta(). Atakujący, który może wpływać na dynamiczne metadane strony, może wstrzyknąć wykonywalny kod HTML przed hydratacją. Ścieżka po stronie klienta nie jest dotknięta, ponieważ używa API DOM kodujących atrybuty.
- CVE-2026-106108Średnie
Quasar Framework to framework do budowania wydajnych interfejsów Vue.js. W wersjach od 3.1.0 do 3.3.0 definicje stron SSG zwracane przez getSsgPages() w @quasar/app-vite mogły podawać wartości dir i filename łączone z build.distDir bez weryfikacji końcowej lokalizacji. Przejście do katalogu nadrzędnego lub istniejący dowiązanie symboliczne poniżej katalogu dystrybucji mogły utworzyć nowe pliki HTML lub katalogi poza drzewem wyjściowym z uprawnieniami użytkownika budującego.
- CVE-2026-106109Średnie
W Quasar Framework od wersji 1.0.0 do 3.3.0 pakiet @quasar/app-vite rekurencyjnie usuwał rozwiązany katalog build.distDir przed budowaniem, bez odrzucania katalogu głównego projektu, katalogu domowego użytkownika, korzeni systemu plików lub zewnętrznych katalogów rozwiązanych przez dowiązania symboliczne. Niebezpieczna, zaufana konfiguracja może usunąć dane zapisywalne przez użytkownika budującego przed rozpoczęciem kompilacji. Domyślnie żadne dane kontrolowane przez atakującego nie docierają do build.distDir, więc wykorzystanie wymaga skompromitowanej lub mniej zaufanej automatyzacji lub błędnej konfiguracji. Problem naprawiono w wersji 3.3.0.
- CVE-2026-106107Wysokie
Quasar Framework przed wersją 3.3.0 w kilku ścieżkach renderowania SSR i SSG @quasar/app-vite interpoluje ssrContext.nonce bezpośrednio do atrybutów HTML w cudzysłowach. Aplikacja, która wyznacza lub nadpisuje tę wartość danymi kontrolowanymi przez atakującego, może pozwolić na zamknięcie atrybutu nonce cudzysłowem i wstrzyknięcie dodatkowych atrybutów lub znaczników do generowanego HTML. Nonce generowane kryptograficznie w base64 lub base64url nie są podatne, ponieważ nie zawierają delimiterów atrybutów HTML. Podatność została naprawiona w wersji 3.3.0.
- CVE-2026-106106Wysokie
Quasar Framework przed wersjami @quasar/render-ssr-error 2.2.4 i @quasar/app-vite 3.3.0: funkcja renderSSRError() w utils/render-ssr-error/src/index.js używała danych diagnostycznych z utils/render-ssr-error/src/env.js do serializacji process.env, nagłówków żądań i ciasteczek do strony HTTP zwracanej przez serve.devError(), podczas gdy serwer deweloperski domyślnie nasłuchiwał na wszystkich interfejsach. Każdy klient sieciowy, który osiągnie błąd renderowania SSR lub SSG przez tę ścieżkę błędów, może uzyskać sekrety środowiska powłoki. Renderer escapował tylko jedną dokładną małą literę zamykającego tagu script, więc warianty wielkości liter i prawidłowe warianty delimiterów mogły zakończyć element script i wstrzyknąć znaczniki. Podatność została naprawiona w @quasar/render-ssr-error 2.2.4 i @quasar/app-vite 3.3.0.
- CVE-2026-106105Wysokie
Quasar Framework przed wersjami @quasar/ssl-certificate 2.1.0, @quasar/cli 5.0.4 i @quasar/app-vite 3.3.0 przechowuje połączony klucz prywatny i certyfikat PEM w pamięci podręcznej bez ustawienia odpowiednich uprawnień dostępu (tylko właściciel). Inny lokalny użytkownik może skopiować klucz i podszyć się pod deweloperski punkt końcowy TLS w środowisku ufającym certyfikatowi. Wygenerowany certyfikat ma również niepotrzebnie szerokie zastosowania klucza i zawiera adres IPv6 loopback jako DNS SAN.
- CVE-2026-106103Wysokie
Quasar Framework przed wersją @quasar/icongenie 6.1.1 pozwala na manipulację ścieżką docelową w poleceniu icongenie generate --profile. Wartości folder i name z profilu nie są ograniczane do katalogu projektu, co umożliwia zapis lub nadpisanie plików poza katalogiem projektu (traversal). Deweloper uruchamiający złośliwy profil może zmodyfikować pliki startowe powłoki, skrypty budowania lub inną konfigurację wykonywalną.
- CVE-2026-106101Niskie
W Quasar Framework przed wersją 2.32.2 narzędzie openURL() ufało obiektowi window.SafariViewController, gdy istniał on w środowisku iOS. Złośliwy HTML renderowany przez komponenty takie jak QEditor może utworzyć element SafariViewController, powodując zastąpienie oczekiwanego obiektu mostu natywnego przez rozwiązywanie nazwanych właściwości przeglądarki. Późniejsze wywołanie openURL() wywołuje isAvailable() na tym elemencie, zgłasza TypeError i zakłóca nawigację zewnętrzną, przekierowania logowania, płatności i inne przepływy otwierania adresów URL.
- CVE-2026-73647Średnie
Quasar Framework przed wersją 2.22.0 zawiera podatność w publicznym narzędziu extend() w ui/src/utils/extend/extend.js, które rekurencyjnie kopiuje klucze obiektów kontrolowanych przez atakującego podczas głębokiego scalania extend(true, target, source) bez odrzucania własnej właściwości __proto__. Scalanie mogło zejść do obiektu prototypu i zapisać właściwości kontrolowane przez atakującego do Object.prototype w tym samym procesie JavaScript. Aplikacje, które przekazywały obiekty kontrolowane przez użytkownika lub częściowo kontrolowane do extend(), mogły doświadczyć obejścia logiki, niebezpiecznego wstrzyknięcia domyślnych opcji, odmowy usługi lub innych skutków specyficznych dla aplikacji, gdy zanieczyszczone właściwości były później używane. Problem został naprawiony w wersji 2.22.0.
Oryginalny opis (angielski, źródło NVD)
Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.23.3, Platform.parseSSR() passed an unbounded User-Agent request header to getMatch() in ui/src/plugins/platform/Platform.js, whose browser-detection expressions combined greedy captures with repeated unbounded scans. Platform belongs to autoInstalledPlugins, so this parsing occurs before routing for every SSR request. A crafted unauthenticated request containing repeated version tokens without a terminating Safari token causes super-linear backtracking and blocks the Node.js event loop, delaying every other SSR request. SPA, PWA, Electron, Cordova, Capacitor, browser-extension, and static-site-generation targets are not affected because they do not parse an attacker-controlled request header through this path. This issue is fixed in version 2.23.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

