CVE-2026-78030
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 53 - wyżej niż 53% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący, który może wpłynąć na te atrybuty (np. przez fragment DSN), może wykonać kod z dowolnego pliku w systemie, co prowadzi do pełnego przejęcia aplikacji lub serwera.
Rekomendacja
Zaktualizuj DBI do wersji 1.653 lub nowszej. Dodatkowo waliduj i ograniczaj wartości atrybutów dbm_type i dbm_mldbm, aby uniemożliwić ścieżki poza dozwolonymi katalogami.
Inne podatności w DBI
Zobacz wszystkie- 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-108518Niskie
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.
- 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.653 for Perl load arbitrary modules via unvalidated dbm_type and dbm_mldbm attributes in DBD::DBM. DBD::DBM passes the dbm_type and dbm_mldbm connect attributes to require without checking that the value names a module. require treats a path-shaped string as a literal filename and does not consult @INC, so the attribute chooses the file that Perl loads and runs. The MLDBM::Serializer:: prefix that DBD::DBM prepends to dbm_mldbm is not a boundary: only the :: separators are rewritten to /, so a value containing / traverses out of the serializer directory. The value is also assigned to $MLDBM::Serializer, which MLDBM requires the same way when it ties the table. A caller that lets an untrusted party influence either attribute, for example through a DSN fragment or a parameter that selects a storage backend, runs the file-scope code of whatever module the value names. For example, my $dsn = "dbi:DBM:f_dir=/var/db;dbm_type=../../Untrusted.pm" my $dbh = DBI->connect( $dsn ); Note that DBD::Gofer forwards connect attributes to the server side, and DBI::ProxyServer checks only that a DSN starts with a driver prefix.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

