CVE-2026-88816
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Może prowadzić do awarii aplikacji Perl korzystających z DBI, jeśli atrybut FetchHashKeyName zostanie ustawiony na wartość numeryczną. Wpływ ogranicza się do dostępności i wymaga określonej konfiguracji.
Rekomendacja
Zaktualizować moduł DBI dla Perla do wersji 1.654 lub nowszej oraz unikać ustawiania FetchHashKeyName na wartości numeryczne.
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-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.
- CVE-2026-19546Wysokie
W DBI znaleziono usterkę, która jest poprawką częściowej poprawki dla CVE-2026-14380 dla RHEL 9.8.z i 10.2.z. Szczegółowe informacje znajdują się w oryginalnym opisie na stronie Red Hat.
- CVE-2026-14380Wysokie
Podatność w bibliotece DBI dla języka Perl przed wersją 1.650 umożliwia wstrzyknięcie kodu poprzez atrybut Profile, który jest interpolowany w eval bez walidacji. Atakujący może kontrolować wartość Profile przez zmienną środowiskową DBI_PROFILE, bezpośrednie przypisanie lub klauzulę DSN, co prowadzi do wykonania dowolnego kodu Perl.
Oryginalny opis (angielski, źródło NVD)
DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in FetchHashKeyName. fetchrow_hashref uses the string pointer of the FetchHashKeyName attribute as the key name without stringifying it first. When FetchHashKeyName has been set to an integer (IV) or floating-point (NV) value, that pointer is invalid, so reading the key name triggers a segmentation fault. This can be triggered with the following code: my $dbh = DBI->connect( "dbi:ExampleP:", "", "", { RaiseError => 0, PrintError => 0 } ); $dbh->{FetchHashKeyName} = 42; my $sth = $dbh->prepare("select mode, size, name from ."); $sth->execute; $sth->fetchrow_hashref;
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

