CVE-2026-77466
WysokieCVSS 8.3Streszczenie
W Lychee w wersjach przed 7.7.0 ukryty dostawca testowy Omnipay Dummy może być użyty przez kupującego (w tym gościa) poprzez bezpośrednie przesłanie go w żądaniu, ponieważ CreateSessionRequest nie wymusza OmnipayProviderType::isAllowed(). Umożliwia to zakończenie przepływu bramki testowej bez rzeczywistej płatności i zwolnienie przedmiotu zakupu, jeśli włączone jest automatyczne realizowanie.
Ocena ryzyka
Atakujący może uzyskać towary bez dokonania płatności, powodując straty finansowe.
Rekomendacja
Zaktualizuj Lychee do wersji 7.7.0, która naprawia tę podatność.
Inne podatności w Lychee
Zobacz wszystkie- CVE-2026-77470Wysokie
W Lychee w wersjach przed 7.7.1 przepływ POST /api/v2/Shop/Checkout/Process akceptuje nieograniczoną tablicę additional_data, która jest scalana po parametrach zakupu obliczonych przez serwer. Nieuwierzytelniony kupujący może zastąpić kwotę, walutę, returnUrl, cancelUrl lub transactionId przed przekazaniem do bramki Omnipay, co pozwala na niedopłatę i uzyskanie towarów.
- CVE-2026-77468Średnie
Lychee to darmowe narzędzie open source do zarządzania zdjęciami. Przed wersją 7.7.0 endpoint GET /docs/api udostępnia niezalogowanym wywołującym dokumentację OpenAPI generowaną przez Scramble zgodnie z konfiguracją config/scramble.php, a obserwowany rozmiar i opóźnienie odpowiedzi sugerują, że schemat jest regenerowany bez cache na poziomie aplikacji. Zdalny atakujący może wielokrotnie odpytywać nieograniczony (bez throttlingu) endpoint, zużywając CPU serwera i uzyskując szczegółową mapę API oraz schematu parametrów.
- CVE-2026-77467Wysokie
W Lychee w wersjach przed 7.7.0 obsługa PDF przez ImageMagick z Ghostscript nie stosuje skutecznego limitu wymiarów stron PDF w ImagickHandler::loadPdf(). Uwierzytelniony użytkownik może przesłać mały plik PDF z nadmiernym /MediaBox, powodując zużycie znacznych zasobów CPU i zablokowanie kolejki przetwarzania obrazów.
- CVE-2026-62679Wysokie
W Lychee w wersjach przed 7.6.4 kontroler SecurePathController obsługujący GET /image/{path} łączy ścieżkę kontrolowaną przez atakującego z katalogiem głównym magazynu i wykonuje sprawdzenie prefiksu przed kanonikalizacją segmentów kropek. W określonej konfiguracji nieadministracyjnej każdy uwierzytelniony użytkownik może odczytać pliki spoza dozwolonego katalogu, w tym konfigurację aplikacji i prywatne obrazy innych użytkowników.
- CVE-2026-61838Wysokie
W Lychee w wersjach przed 7.6.3 punkt końcowy GET /api/v2/Zip autoryzuje archiwa albumów i zdjęć poprzez AlbumPolicy::canDownload() i PhotoPolicy::canDownload() bez uprzedniego wymuszenia AlbumPolicy::canAccess(). Dla publicznego, chronionego hasłem albumu z włączonym grants_download, nieuwierzytelniony atakujący znający identyfikator albumu może pobrać archiwum ZIP bez podania hasła.
- CVE-2026-61611Wysokie
W Lychee w wersjach przed 7.6.1 punkt końcowy POST /api/v2/Album::unlock nie ma ograniczeń liczby prób, licznika prób, opóźnienia, CAPTCHA ani blokady. Zdalny nieuwierzytelniony atakujący znający identyfikator albumu może zautomatyzować zgadywanie hasła do chronionego albumu i uzyskać dostęp do prywatnej kolekcji zdjęć.
- CVE-2026-61610Niskie
Lychee to narzędzie do zarządzania zdjęciami. Przed wersją 7.6.1, gdy photos_star_visibility ma wartość anonymous, endpoint POST /api/v2/Photo::highlight może pobrać i zmodyfikować zdjęcie bez potwierdzenia, że wywołujący może je zobaczyć. Nieuwierzytelniony atakujący mogący odgadnąć identyfikatory zdjęć może rozróżnić istniejące prywatne zdjęcia po różnych odpowiedziach oraz zmienić ich stan is_highlighted, w tym zdjęć w prywatnych lub chronionych hasłem albumach. Problem dotyczy instalacji z nie-domyślnym ustawieniem anonymous. Naprawiono w wersji 7.6.1.
- CVE-2026-57569Niskie
Lychee to narzędzie do zarządzania zdjęciami. Przed wersją 7.6.0 przepływ POST /api/v2/Photo::fromUrl waliduje nazwę hosta i rozwiązane adresy w app/Rules/PhotoUrlRule.php, ale następnie przekazuje oryginalną nazwę hosta przez app/Actions/Import/FromUrl.php do app/Image/Files/DownloadedFile.php w celu osobnego połączenia fopen. Uwierzytelniony atakujący kontrolujący odpowiedzi DNS może sprawić, że walidacja zobaczy publiczny adres, a kolejne pobranie rozwiąże tę samą nazwę na adres prywatny lub zabroniony. Ta niezgodność DNS rebinding typu time-of-check to time-of-use omija zabezpieczenia SSRF i może dotrzeć do usług dostępnych z serwera Lychee. Naprawiono w wersji 7.6.0.
- CVE-2026-57568Średnie
Lychee to darmowe narzędzie open source do zarządzania zdjęciami. Przed wersją 7.6.0 Lychee pozwala uwierzytelnionemu użytkownikowi z uprawnieniami edycji albumu zapisać URI javascript w opisie Markdown albumu lub zdjęcia, ponieważ config/markdown.php włącza allow_unsafe_links. Pliki PreformattedPhotoData.php i PreFormattedAlbumData.php konwertują opis do HTML, a komponenty galerii renderują ten HTML przez v-html, co pozwala odwiedzającemu klikającemu renderowany link na wykonanie kontrolowanego przez atakującego JavaScriptu w origin Lychee.
- CVE-2024-48908Średnie
Akcja lychee do sprawdzania linków w plikach Markdown, HTML i tekstowych przed wersją 2.0.2 zawiera potencjalną podatność na wstrzyknięcie dowolnego kodu w lychee-setup w pliku action.yml. Podatność została naprawiona w wersji 2.0.2.
Oryginalny opis (angielski, źródło NVD)
Lychee is a free, open-source photo-management tool. Prior to 7.7.0, Lychee hides the Omnipay Dummy test provider from the checkout options in production through OmnipayFactory::get_supported_providers(), but CreateSessionRequest validates only that the submitted provider is an OmnipayProviderType and does not enforce OmnipayProviderType::isAllowed(). A buyer, including a guest when webshop_allow_guest_checkout is enabled, can submit Dummy directly and complete the test gateway flow without a real payment. When webshop_auto_fulfill_enabled is enabled, OrderCompletedListener::fullfillOrder() can then release the purchasable item. The issue requires access to the Supporter or Pro webshop and an enabled purchasable item. Testing bypassed the closed-source license middleware, so whether the real license layer performs additional payment-provider validation remains unverified. The payment finalize status check itself is not the root cause. This issue is fixed in version 7.7.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

