CVE-2026-73647
ŚrednieCVSS 5.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może manipulować zachowaniem aplikacji, powodować awarie lub uzyskać nieautoryzowany dostęp, co może prowadzić do naruszenia integralności i dostępności systemu.
Rekomendacja
Zaktualizuj Quasar Framework do wersji 2.22.0 lub nowszej oraz unikaj przekazywania niezaufanych obiektów do funkcji extend().
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-106104Wysokie
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.22.0, the public extend() utility in ui/src/utils/extend/extend.js recursively copied attacker-controlled object keys during extend(true, target, source) deep merges without rejecting an own __proto__ property. The merge could descend into the prototype object and write attacker-controlled properties to Object.prototype in the same JavaScript process. Applications that passed user-controlled or partially user-controlled objects to extend() could experience logic bypass, unsafe default-option injection, denial of service, or other application-specific impact when polluted properties were later consumed. This issue is fixed in version 2.22.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

