CVE-2026-78183
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
Podatność w DBD::Pg w wersji 3.21.0 dla Perla: zapis poza granicami sterty w funkcji quote_float. Funkcja quote_float() alokuje długość ciągu + 1, ale dla specjalnych literałów (NaN, Inf, +Inf, -Inf, Infinity, +Infinity, -Infinity) emituje literał otoczony cudzysłowami plus NULL, co powoduje przepełnienie o 2 bajty. Można to osiągnąć przez metodę $dbh->quote, np. $dbh->quote("Infinity", DBI::SQL_NUMERIC). Regresja wprowadzona w 3.21.0 przez przepisanie quote.c.
Ocena ryzyka
Atakujący może wykorzystać podatność do spowodowania awarii aplikacji lub potencjalnie do wykonania dowolnego kodu, co może prowadzić do naruszenia integralności systemu.
Rekomendacja
Zaleca się aktualizację DBD::Pg do wersji nowszej niż 3.21.0, która zawiera poprawkę. Należy również unikać używania quote z literałami specjalnymi, jeśli to możliwe.
Oryginalny opis (angielski, źródło NVD)
DBD::Pg version 3.21.0 for Perl has a heap out-of-bounds write in quote_float. quote_float() allocates the length of the string + 1, which is the size of the bare numeric symbol plus NULL. But for special literals NaN, Inf, +Inf, -Inf, Infinity, +Infinity, -Infinity it emits the literal surrounded by quotes plus NULL, which is length + 3 bytes. Every recognised literal (case-insensitive) overflows by 2 bytes, a single quote and a NULL. This can be reached by the $dbh->quote method, for example $dbh->quote( "Infinity", DBI::SQL_NUMERIC ). This regression was introduced in 3.21.0 by the quote.c rewrite.

