CVE-2026-108518
NiskieCVSS 2.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Wersje DBI dla Perla przed 1.656 powodują awarię przez type confusion w dbi_profile, gdy uchwyt bazy danych jest niszczony w ramach Profile Path z elementem {attr}. Gdy pamięć wskazywana przez wskaźnik przejdzie sprawdzenie typu, wyszukiwanie atrybutu dereferencjonuje NULL lub nieprawidłowy wskaźnik i proces kończy się sygnałem SIGSEGV.
Ocena ryzyka
Ustawienie DBI_PROFILE={ImplementorClass} może spowodować awarię niezmodyfikowanego programu, prowadząc do odmowy usługi.
Rekomendacja
Zaktualizuj moduł DBI dla Perla do wersji 1.656 lub nowszej.
Inne podatności w DBI
Zobacz wszystkie- CVE-2026-78030Krytyczne
Wersje DBI przed 1.653 dla Perla ładują dowolne moduły przez niezweryfikowane atrybuty dbm_type i dbm_mldbm w DBD::DBM. Atrybuty te są przekazywane do require bez sprawdzenia, czy wartość wskazuje moduł, co pozwala na załadowanie i wykonanie kodu z dowolnego pliku.
- CVE-2026-73194Krytyczne
W bibliotece DBI dla Perla przed wersją 1.652 występuje podatność na zapis poza zakresem pamięci sterty (heap out-of-bounds write) spowodowany niezweryfikowanym numerycznym placeholderem, który ustawia licznik bindowania w funkcji preparse. Specjalnie spreparowane zapytanie może doprowadzić do zapisu poza przydzielony bufor.
- CVE-2026-73193Krytyczne
W bibliotece DBI dla Perla przed wersją 1.652 występuje podatność na zapis poza zakresem pamięci sterty na 32-bitowym Perlu, spowodowana zawinięciem liczby całkowitej przy obliczaniu rozmiaru bufora wyjściowego w funkcji preparse. Bardzo długie zapytanie może spowodować zapis poza przydzielony bufor.
- CVE-2026-60082Krytyczne
Podatność w bibliotece DBI dla Perla przed wersją 1.651 nie wymusza spójności uchwytu instrukcji z wierszem. Gdy uchwyt instrukcji nie miał pól, ale źródłowy wiersz nie był pusty, wewnętrzny pomocnik bufora wierszy odczytywał dane z ujemnego indeksu tablicy.
- CVE-2026-14740Krytyczne
Podatność w bibliotece DBI dla języka Perl przed wersją 1.650 powoduje odczyt o jeden bajt poza dozwolonym obszarem pamięci podczas przetwarzania początkowego komentarza SQL w metodzie preparse. Problem występuje przy usuwaniu komentarza na początku zapytania SQL.
- CVE-2026-14739Krytyczne
Podatność w bibliotece DBI dla Perla przed wersją 1.650 powoduje przepełnienie sterty podczas wstępnego parsowania zapytań SQL zawierających ekstremalnie dużą liczbę placeholderów. Poprawka dla CVE-2026-10879 nie alokowała wystarczającej ilości pamięci do obsługi około 1,2 miliona placeholderów. Wersja 1.650 wprowadza twardy limit 99 999 placeholderów.
- CVE-2026-9698Krytyczne
DBI dla Perla przed wersją 1.648 zapisuje komunikaty błędów w buforze o ograniczonej wielkości (200 bajtów) bez kontroli długości. Atakujący mogący wpływać na treść błędu mogą spowodować przepełnienie bufora.
- CVE-2026-111879Średnie
Wersje DBI dla Perla przed 1.656 zawieszają się przy późniejszym otwarciu tabeli DBD::DBM, ponieważ nieudane open_data nie zwalnia blokady tabeli. Blokada flock nie ma limitu czasu, więc kolejne otwarcie tej tabeli blokuje się tak długo, jak długo istnieje uchwyt trzymający nieaktualną blokadę.
- CVE-2026-88816Wysokie
Wersje DBI dla Perla przed 1.654 niepoprawnie traktują wartości numeryczne jako łańcuchy znaków w FetchHashKeyName. Gdy FetchHashKeyName ma wartość całkowitą (IV) lub zmiennoprzecinkową (NV), wskaźnik łańcucha jest nieprawidłowy, a odczyt nazwy klucza powoduje błąd segmentacji.
- CVE-2026-88815Średnie
Wersje DBI dla Perla przed 1.654 niepoprawnie traktują wartości numeryczne jako łańcuchy znaków w sql_type_cast_svpv. Przy rzutowaniu na SQL_NUMERIC funkcja przekazuje wskaźnik łańcucha i długość SV do grok_number bez uprzedniej konwersji na łańcuch; wartość całkowita (IV) lub zmiennoprzecinkowa (NV) nie ma prawidłowego wskaźnika łańcucha, co powoduje odczyt z nieprawidłowego adresu i błąd segmentacji.
Oryginalny opis (angielski, źródło NVD)
DBI versions before 1.656 for Perl crash via type confusion in dbi_profile when a database handle is destroyed under a Profile Path with an {attr} element. An {attr} element names a database handle attribute, which dbi_profile reads from the handle's inner hash. It expects the inner handle as a reference and dereferences it, but a handle that is being destroyed hands back the inner hash itself, so the dereference yields the hash's bucket array. A type check on that pointer usually fails and the call goes unprofiled. When the memory it addresses passes the check, the attribute lookup dereferences a NULL or invalid pointer and the process dies on SIGSEGV. The Path is set by the application, by the Profile handle attribute, or by the DBI_PROFILE environment variable, so `DBI_PROFILE={ImplementorClass}` can crash an unmodified program.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

