CVE-2026-54506
WysokieCVSS 7.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
W Vvveb przed wersją 1.0.8.5 funkcja sanitizeHTML() ma błędne wyrażenie regularne dla atrybutów zdarzeń on* oraz błędny warunek pętli, przez co zabronione zagnieżdżone znaczniki są usuwane tylko raz. Użytkownik z rolą Author lub wyższą może zapisać w polu bio złośliwy JavaScript, który wykonuje się u innych użytkowników.
Ocena ryzyka
Atakujący może wykonać JavaScript w kontekście przeglądarki ofiar (odwiedzających, administratorów), co umożliwia kradzież danych sesji, działania na koncie ofiary, defacement lub phishing. Stanowi to poważne ryzyko dla bezpieczeństwa użytkowników.
Rekomendacja
Zaktualizuj Vvveb do wersji 1.0.8.5 lub nowszej. Rozważ dodatkowe kodowanie wyjściowe dla pól bio i przegląd istniejących treści użytkowników.
Inne podatności w Vvveb
Zobacz wszystkie- CVE-2026-112905Krytyczne
W Vvveb przed wersją 1.0.8.7 uwierzytelniony IDOR na endpoincie admin/auth-token pozwala dowolnemu administratorowi odczytać i nadpisać tokeny API innego administratora. Podatność została załatana w wersji 1.0.8.7.
- CVE-2026-110799Krytyczne
W Vvveb przed wersją 1.0.8.7 funkcjonalność resetowania hasła jest podatna na ominięcie uwierzytelniania z powodu niewystarczającej walidacji parametrów GET user i token. Podatność została załatana w wersji 1.0.8.7.
- CVE-2026-41930Krytyczne
Vvveb przed wersją 1.0.8.2 zawiera podatność na twardo zakodowane dane uwierzytelniające w konfiguracji docker-compose-apache.yaml, co pozwala nieautoryzowanym atakującym uzyskać dostęp do kontenera phpMyAdmin z prekonfigurowanymi danymi bazy danych.
- CVE-2026-39918Krytyczne
Vvveb przed wersją 1.0.8.1 zawiera podatność na wstrzykiwanie kodu w punkcie końcowym instalacji, gdzie parametr POST subdir jest zapisywany bez oczyszczania do pliku konfiguracyjnego env.php. Atakujący mogą wstrzyknąć dowolny kod PHP, wychodząc z kontekstu ciągu znaków w instrukcji define, co umożliwia nieuwierzytelnione zdalne wykonanie kodu jako użytkownik serwera WWW.
- CVE-2026-112904Wysokie
Vvveb w wersjach 1.0.8.6 i wcześniejszych ma funkcje nextRestore() i nextBackup() w kontrolerze kopii zapasowych, które przyjmują parametr GET file i konkatenują go bezpośrednio do DIR_BACKUP bez wywołania sanitizeFileName(). Umożliwia to uwierzytelnionemu administratorowi odczyt dowolnych plików na serwerze oraz zapis zawartości zrzutu SQL w dowolnych lokalizacjach.
- CVE-2026-55232Wysokie
Vvveb przed wersją 1.0.8.6 zawiera podatność SSRF, ponieważ walidacja adresów IP obsługuje tylko IPv4, a nie IPv6. Uwierzytelniony użytkownik panelu administracyjnego może wykorzystać proxy oEmbed do odczytu wewnętrznych usług i metadanych chmury, w tym danych uwierzytelniających IAM.
- CVE-2026-55231Wysokie
Vvveb przed wersją 1.0.8.6 ma wadliwy mechanizm czyszczenia ścieżek, który pozwala uwierzytelnionemu użytkownikowi z uprawnieniami do kopii zapasowych na odczyt i usunięcie dowolnych plików na serwerze. Można odzyskać dane uwierzytelniające bazy danych, czytać pliki systemowe i usunąć config/db.php, co umożliwia pełne przejęcie strony.
- CVE-2026-55230Wysokie
Vvveb przed wersją 1.0.8.6 ma sanitizer HTML, który nie usuwa atrybutów obsługi zdarzeń, gdy tag zawiera znak większości w wartości atrybutu w cudzysłowie. Autor treści o niskich uprawnieniach może przechowywać złośliwy kod JavaScript, który wykonuje się w przeglądarkach odwiedzających i administratorów, co może prowadzić do przejęcia konta administratora.
- CVE-2026-54613Średnie
W Vvveb przed wersją 1.0.8.5 funkcja getThemeFolder() w admin/controller/editor/revisions.php zwraca kontrolowany przez atakującego parametr theme bez sanityzacji, a backupFolder() łączy go z DIR_THEMES przed operacjami editor/revisions/load lub editor/revisions/delete na nazwanym pliku .html. sanitizeBackupFileName() usuwa znaki przejścia tylko z osobnego parametru pliku i nie chroni składnika katalogu motywu. Uwierzytelniony użytkownik z domyślną rolą Editor i uprawnieniem editor/* może przesłać sekwencje przejścia, które przekierowują file_get_contents() lub unlink() do osiągalnego podkatalogu kopii zapasowej poza katalogiem głównym sieci.
- CVE-2026-54612Wysokie
W systemie CMS Vvveb od wersji 1.0.0 do 1.0.8.5 funkcja saveGlobalElements() łączy kontrolowaną przez atakującego część ścieżki z katalogiem motywu, co pozwala na path traversal. Uwierzytelniony użytkownik z domyślną rolą Editor może zapisać dowolną treść PHP poza katalogiem motywu, co umożliwia umieszczenie trwałego webshella.
Oryginalny opis (angielski, źródło NVD)
Vvveb is a powerful and easy to use CMS with page builder to build websites, blogs or ecommerce stores. Prior to 1.0.8.5, app/controller/user/profile.php accepts the user[bio] field and passes stored content through sanitizeHTML() in system/functions.php, whose on* event-handler regular expression omits the forward-slash delimiter and whose do-while condition compares the string to itself, so forbidden nested tags are removed only once. An Author-role or higher user can submit solidus-prefixed event-handler markup or nested forbidden tags that survive sanitization. The stored bio is rendered without sufficient output encoding on /author/{username}, in the admin user-management view, and potentially in comment displays, causing attacker-controlled JavaScript to execute when unauthenticated visitors, administrators, or other users view the content. This can expose browser-session data and permit victim-context account actions, defacement, or phishing. This issue is fixed in version 1.0.8.5.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

