Podatności Soup Sieve
4 znanych podatności CVE w Soup Sieve, przetłumaczonych i ocenionych.
- CVE-2026-86000Średnie
Soup Sieve to biblioteka selektorów CSS przeznaczona do użycia z Beautiful Soup 4. Przed wersją 2.9 parser selektorów w src/soupsieve/css_parser.py definiuje IDENTIFIER z sąsiadującymi grupami ilościowymi na nakładających się klasach znaków, a VALUE osadza IDENTIFIER dla selektorów atrybutów. Gdy selektor kontrolowany przez atakującego zawiera długi identyfikator lub niecytowany ciąg wartości atrybutu, po którym następuje dane wejściowe powodujące niepowodzenie ogólnego dopasowania, silnik wyrażeń regularnych przeszukuje kwadratowo wiele podziałów między nakładającymi się grupami. Selektory kontrolowane przez użytkownika mogą dotrzeć do tej ścieżki przez soupsieve.compile(), soupsieve.select() lub BeautifulSoup.select(), podczas gdy aplikacje używające tylko zakodowanych na stałe selektorów nie są dotknięte. Wynikające z tego zużycie CPU może utrzymać GIL Pythona, wyczerpać pracowników aplikacji i zatrzymać usługę; udane dopasowania zwykłych identyfikatorów są liniowe, a problem nie powoduje uszkodzenia pamięci ani wykonania kodu. Problem został naprawiony w wersji 2.9.
- CVE-2026-85999Średnie
Soup Sieve to biblioteka selektorów CSS przeznaczona do użycia z Beautiful Soup 4. Przed wersją 2.9, selector_iter w src/soupsieve/css_parser.py przycina surowy selektor za pomocą RE_WS_END, wyrażenia kończącego się na WSC (białe znaki i komentarze) używanego z search(), więc silnik wyrażeń regularnych ponawia zachłanne skanowanie przy każdej pozycji początkowej. Selektor kontrolowany przez atakującego zawierający długi ciąg białych znaków wewnętrznych lub selektor zawierający długi ciąg komentarzy CSS, po którym następuje inny token, powoduje kwadratowe obciążenie CPU przed tokenizacją. Selektory kontrolowane przez użytkownika mogą dotrzeć do ścieżki przez soupsieve.compile() i BeautifulSoup.select(), podczas gdy aplikacje używające tylko zakodowanych na stałe selektorów nie są dotknięte. Ta przyczyna źródłowa jest oddzielona od podatności na cofanie się IDENTIFIER i VALUE, ponieważ koszt występuje w RE_WS_END.search podczas przycinania, a nie podczas dopasowywania tokenów. Wynikające z tego zużycie CPU może utrzymać GIL Pythona, wyczerpać pracowników i zatrzymać usługę bez powodowania uszkodzenia pamięci lub wykonania kodu. Problem został naprawiony w wersji 2.9.
- CVE-2026-49477Wysokie
Biblioteka Soup Sieve w wersjach przed 2.8.4 zawiera podatność na atak DoS poprzez wyrażenie regularne podatne na katastroficzne cofanie się. Atakujący może dostarczyć niesprawdzony selektor CSS z nieprawidłowo zamkniętą wartością atrybutu, co prowadzi do wyczerpania zasobów CPU.
- CVE-2026-49476Wysokie
Biblioteka Soup Sieve przed wersją 2.8.4 przydziela nieograniczoną pamięć podczas kompilowania dużych list selektorów oddzielonych przecinkami. Atakujący może dostarczyć spreparowany ciąg selektora do funkcji soupsieve.compile() lub Beautiful Soup .select()/.select_one(), co prowadzi do alokacji setek megabajtów pamięci i odmowy usługi.

