← Wszystkie artykuły
2026-06-18

CVE-2026-40457: reflected XSS w linkach potwierdzających akcję

Opis podatności

CVE-2026-40457 ma CVSS v4 2.1 LOW. Niska punktacja wynika przede wszystkim z UI:A i AT:P: exploit wymaga aktywnej interakcji zalogowanej ofiary oraz spełnienia dodatkowego warunku aplikacyjnego, a nie z braku wpływu na kontekst przeglądarki.

Podatne były dwa miejsca: dbrecover.php oraz netremap.php. W pierwszym do linku potwierdzającego trafiał parametr db, w drugim parametry id i mapto. Wartości były osadzane w atrybucie href bez kodowania dla kontekstu atrybutu HTML.

Warunki wykorzystania

W CVSS widać PR:N, ale to dotyczy atakującego. Atakujący nie musi mieć konta w LMS, żeby przygotować link. Jednocześnie ofiara musi kliknąć go jako uwierzytelniony użytkownik LMS, a dla netremap.php potrzebny jest dodatkowy kontekst aplikacyjny (AT:P), np. istniejąca sieć możliwa do użycia w tym widoku.

Tego przypadku nie należy opisywać jako krytycznego XSS. Trafniejszy opis to błąd kontekstowego escapowania, w którym dane z URL-a wracały do HTML w miejscu interpretowanym przez przeglądarkę jako atrybut linku.

Patch

Commit 9c5651b dodaje htmlspecialchars() dla wartości z GET przed osadzeniem ich w atrybutach href w dbrecover.php i netremap.php. To HTML-escaping w kontekście atrybutu linku, nie ogólna walidacja URL ani uniwersalne filtrowanie XSS.

Ten przypadek dobrze pokazuje, że poprawka powinna być oceniana przez kontekst wyjścia. Inaczej traktuje się tekst w HTML, inaczej atrybut, inaczej URL i inaczej fragment JavaScript. Tutaj problem był przy atrybucie linku.

Źródła