CVE-2026-119332
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
W przeglądarce Ladybird przed commitem 209579c funkcja FinalizationRegistry::cleanup() usuwała martwy rekord, zachowywała iterator do następnego rekordu, a następnie wywoływała kontrolowany przez atakującego kod JavaScript. Jeśli callback wywołał unregister() dla następnego rekordu, zachowany iterator wskazywał na zwolniony węzeł, a kolejna iteracja czytała jego pola po zwolnieniu.
Ocena ryzyka
Możliwe jest niezawodne zawieszenie przeglądarki oraz powstanie prymitywu uszkodzenia pamięci w wersjach produkcyjnych, co potencjalnie może prowadzić do wykonania kodu. Wymaga to odwiedzenia złośliwej strony.
Rekomendacja
Zaktualizuj Ladybird do wersji zawierającej commit 209579c96473c75bd5eba9701fcadb841a045964 lub nowszej. Do czasu aktualizacji ogranicz korzystanie z przeglądarki do zaufanych stron.
Inne podatności w Ladybird
Zobacz wszystkie- CVE-2026-119331Wysokie
W przeglądarce Ladybird przed commitem c0d68bd funkcje CSSStyleSheet.cssRules, insertRule() i deleteRule() nie egzekwowały flagi origin-clean arkusza stylów wymaganym błędem SecurityError, mimo że importowane arkusze cross-origin były poprawnie oznaczane jako nie-origin-clean. Złośliwa strona mogła odczytywać reguły oraz wstawiać i usuwać reguły w arkuszu ofiary, omijając politykę Same-Origin.
- CVE-2026-58592Wysokie
Ladybird przed commitem 2f9dc7e zawiera błąd bezpieczeństwa pamięci typu dangling reference w module ładującym WebAssembly ESM-integration. Gdy funkcja JavaScript jest importowana do modułu WebAssembly ścieżką ESM, WebAssemblyModule.cpp przekazuje przez referencję lokalny na stosie obiekt Wasm::FunctionType do create_host_function, którego callback przechwytuje i później odczytuje tę referencję; po zakończeniu iteracji pętli linkowania ESM obiekt FunctionType jest niszczony, pozostawiając callback z wiszącą referencją. Nieaktualne dane typu wyniku pozwalają callbackowi zwrócić pusty wektor wyników dla statycznie niepustego wyniku, przez co rejestr docelowy zachowuje wartość pod wpływem atakującego, konsumowaną następnie przez handler WASM-GC array.set, który po jedynie sprawdzeniu null bit-castuje niskie bity referencji na wskaźnik ArrayInstance, dając dowolny zapis.
Oryginalny opis (angielski, źródło NVD)
Ladybird is a truly independent web browser. Prior to 209579c96473c75bd5eba9701fcadb841a045964, FinalizationRegistry::cleanup() in Libraries/LibJS/Runtime/FinalizationRegistry.cpp removed a dead record from m_records, retained an iterator to the next FinalizationRecord, and then invoked attacker-controlled JavaScript through the cleanup callback. If that callback called unregister() for the next record, remove_by_token() freed the node referenced by the retained iterator, and the next cleanup iteration read its target and held_value fields after free. This reliably crashes instrumented WebContent builds and creates a memory-corruption primitive in production builds. This vulnerability is fixed by commit 209579c96473c75bd5eba9701fcadb841a045964.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

