CVE-2026-59102
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Forgejo przed wersją 15.0.3 zawiera podatność na trwałe ataki XSS, umożliwiającą uwierzytelnionym atakującym wykonanie dowolnego kodu JavaScript w przeglądarkach innych użytkowników. Atak polega na ustawieniu pełnej nazwy zawierającej ładunek HTML i uruchomieniu zadania Actions. Gdy opcja DEFAULT_SHOW_FULL_NAME jest włączona, opis zadania jest składany po stronie serwera z nazwą użytkownika wstawioną do ciągu HTML przez funkcję tłumaczącą, która nie escapuje argumentów, a frontend renderuje wynik za pomocą wiązania v-html Vue, co powoduje wykonanie skryptu dla każdego użytkownika przeglądającego stronę dotkniętego zadania Actions.
Ocena ryzyka
Ryzyko polega na możliwości kradzieży sesji, przejęcia kont lub wycieku danych wrażliwych w organizacji, ponieważ atakujący może wykonać dowolny skrypt w kontekście przeglądarki ofiary, która ma dostęp do Forgejo.
Rekomendacja
Należy natychmiast zaktualizować Forgejo do wersji 15.0.3 lub nowszej. Dodatkowo, jeśli to możliwe, wyłącz opcję DEFAULT_SHOW_FULL_NAME do czasu aktualizacji.
Inne podatności w Forgejo
Zobacz wszystkie- CVE-2026-82556Średnie
Podatność w Forgejo do wersji 15.0.4 w funkcji net.LookupIP w pliku is_migrate_allowed.go umożliwia zdalny atak typu server-side request forgery (SSRF). Atak może być przeprowadzony zdalnie, a exploit jest publiczny.
- CVE-2025-68937Krytyczne
Forgejo przed wersją 13.0.2 pozwala atakującym na zapis do nieprzeznaczonych plików oraz prawdopodobnie uzyskanie dostępu do powłoki serwera z powodu nieprawidłowego obsługiwania celów dowiązań symbolicznych poza repozytorium dla repozytoriów szablonów. Poprawka jest również dostępna dla wersji 11 LTS w 11.0.7 i późniejszych.
Oryginalny opis (angielski, źródło NVD)
Forgejo before 15.0.3 contains a stored cross-site scripting vulnerability that allows authenticated attackers to execute arbitrary JavaScript in other users' browsers by setting a full name containing an HTML payload and triggering an Actions run. When the DEFAULT_SHOW_FULL_NAME option is enabled, the run description is assembled server-side with the user's display name interpolated into an HTML string via a translation function that does not escape its arguments, and the frontend renders the result using a Vue v-html binding, causing script execution for any user who views the affected Actions run page.

