CVE-2026-42198
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 88 - wyżej niż 88% wszystkich znanych CVE
Streszczenie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach od 42.2.0 do 42.7.10 jest podatny na atak DoS po stronie klienta podczas uwierzytelniania SCRAM-SHA-256. Złośliwy serwer może wymusić na sterowniku wykonanie PBKDF2 z bardzo dużą liczbą iteracji, co prowadzi do nadmiernego obciążenia CPU i może zablokować pule połączeń. Parametr loginTimeout nie w pełni łagodził problem, ponieważ wątek roboczy kontynuował obliczenia nawet po upływie czasu oczekiwania.
Ocena ryzyka
Atakujący może zdalnie przeciążyć serwer aplikacji, wyczerpując zasoby CPU i uniemożliwiając nawiązywanie nowych połączeń z bazą danych, co prowadzi do przerwania działania usługi.
Rekomendacja
Niezwłocznie zaktualizuj bibliotekę pgjdbc do wersji 42.7.11 lub nowszej. Jeśli aktualizacja nie jest możliwa, rozważ ograniczenie zaufanych serwerów PostgreSQL lub zastosowanie dodatkowych mechanizmów ograniczających czas wykonania zapytań.
Inne podatności w pgjdbc
Zobacz wszystkie- CVE-2026-107315Średnie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach od 42.7.4 do 42.7.13 dopełnia wartość krótszą niż zadeklarowana długość bajtami pozostałymi w buforze wysyłki zamiast zerami, a serwer przechowuje te bajty jako część wartości. Bajty te to wiadomości wysłane wcześniej przez sterownik na tym samym połączeniu: tekst SQL i wartości parametrów ostatnich zapytań, które w połączeniach pulowanych mogą pochodzić z innych żądań. Każda dopełniona wartość może przenosić do 8192 bajtów takiego ruchu, a przy szyfrowaniu GSS do 16320 bajtów. Dopełnianie występuje, gdy aplikacja deklaruje długość większą niż dostarczane dane, przez PreparedStatement.setObject z ByteStreamWriter, CopyIn.writeToCopy, PGCopyOutputStream.write, LargeObject.write lub Blob.setBytes. Sterownik przyjmuje te wywołania bez błędu. Atakujący, który może sprawić, że aplikacja zapisze taką wartość i odczyta ją, może zebrać wcześniejszy ruch. Aplikacje, w których deklarowane długości zawsze odpowiadają danym, nie są dotknięte. Wersje 42.7.3 i wcześniejsze dopełniają zerami.
- CVE-2026-107314Średnie
W sterowniku pgjdbc (PostgreSQL JDBC Driver) w wersjach 42.7.11-42.7.13 brakuje wymogu uwierzytelniania, gdy właściwość requireAuth wyklucza wszystkie znane metody (np. requireAuth=!password,!md5,!gss,!sspi,!scram-sha-256,!none). Sterownik akceptuje wtedy dowolną metodę żądaną przez serwer, w tym uwierzytelnianie hasłem w postaci jawnego tekstu. Atakujący w pozycji pośredniej może przechwycić hasło bazy danych. Wersja 42.7.14 naprawia problem.
- CVE-2026-54291Średnie
Sterownik JDBC dla PostgreSQL (pgjdbc) w wersjach 42.7.4 do 42.7.11 umożliwia ciche obniżenie poziomu uwierzytelniania SCRAM-SHA-256-PLUS z wiązaniem kanału do zwykłego SCRAM-SHA-256 bez niego. Atakujący typu man-in-the-middle może wykorzystać certyfikat bez odpowiedniego skrótu wiązania kanału, aby wymusić tę degradację i ominąć ochronę.
Oryginalny opis (angielski, źródło NVD)
pgjdbc is an open source postgresql JDBC Driver. From version 42.2.0 to before version 42.7.11, pgjdbc is vulnerable to a client-side denial of service during SCRAM-SHA-256 authentication. A malicious server can instruct the driver to perform SCRAM authentication with a very large iteration count. With a large enough value, the client spends an unbounded amount of CPU time inside PBKDF2 before authentication can fail. A single attempt ties up a CPU core. Repeated or concurrent attempts exhaust client CPU and can wedge connection pools. In affected versions, loginTimeout did not fully mitigate this problem. When loginTimeout expired, the caller could stop waiting, but the worker thread performing the connection attempt could continue running and burning CPU inside the SCRAM PBKDF2 computation. This issue has been patched in version 42.7.11.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

