CVE-2026-55858
ŚrednieCVSS 5.9Streszczenie
MariaDB Connector/J przed wersjami 2.7.14, 3.3.5, 3.4.3 i 3.5.9 koduje i dekoduje tekst protokołu oraz wykonuje escapowanie po stronie klienta przy założeniu, że zestaw znaków połączenia to UTF-8. Serwer może zgłosić zmianę character_set_client w trakcie sesji przez OK-packet session-state tracking, w tym przez SET NAMES, procedurę składowaną lub wyzwalacz, konfigurację serwera lub wrogi serwer. Jeśli character_set_client zmieni się na nie-UTF-8, sterownik kontynuuje odczyt i zapis UTF-8, podczas gdy serwer interpretuje te same bajty w innym kodowaniu, powodując cichą korupcję danych i niezgodność zestawów znaków, co może obejść cytowanie lub escapowanie bajtowe.
Ocena ryzyka
Ryzyko cichej korupcji danych oraz możliwość obejścia zabezpieczeń SQL, co może prowadzić do nieautoryzowanego dostępu lub modyfikacji danych.
Rekomendacja
Zaleca się aktualizację do wersji 2.7.14, 3.3.5, 3.4.3 lub 3.5.9, które akceptują tylko utf8, utf8mb3 lub utf8mb4 po inicjalizacji, a inne wartości powodują SQLException z SQLState 08000 i zamknięcie połączenia.
Inne podatności w MariaDB Connector/J
Zobacz wszystkie- CVE-2026-55857Średnie
MariaDB Connector/J przed wersjami 2.7.14, 3.3.5, 3.4.3 i 3.5.9 może być zmuszony do przesłania hasła konta przez niezabezpieczone połączenie podczas uwierzytelniania PAM dialog. Plugin mysql_clear_password jest chroniony wymogiem bezpiecznego transportu, ale handler PAM SendPamAuthPacketFactory (nazwany dialog przez serwer) nie deklaruje tego wymogu i dziedziczy domyślną wartość secure-required false. Wrogi lub man-in-the-middle serwer może wysłać Authentication Switch Request dla dialog przez zwykłe TCP, powodując, że sterownik zwróci hasło użytkownika w postaci jawnego tekstu, gdy sslMode=DISABLE i restrictedAuth=null (domyślna konfiguracja).
- CVE-2026-55856Średnie
MariaDB Connector/J przed wersjami 2.7.14, 3.3.5, 3.4.3 i 3.5.9, gdy aplikacja Java łączy się z sslMode=verify-full lub verify-ca, podaje hasło i nie konfiguruje serverSslCert lub trustStore, może zaakceptować niezaufany certyfikat self-signed przez tymczasowy menedżer zaufania fallbackToSystemTrustStore=true i zapisać jego certFingerprint do późniejszego wiązania tożsamości. Ścieżki OK-packet i authentication-switch egzekwują odcisk certyfikatu, ale ścieżka initial-handshake nie. HandshakeResponse.encode() może zbudować i wysłać odpowiedź mysql_clear_password przed sprawdzeniem certFingerprint, sslMode lub odporności na man-in-the-middle, a ścieżka początkowa również omija restrictedAuth. Aktywny man-in-the-middle lub wrogi serwer może przedstawić certyfikat self-signed, podać się za MariaDB, wybrać mysql_clear_password jako początkowy plugin uwierzytelniania i otrzymać pełne hasło bazy danych przed odrzuceniem połączenia.
Oryginalny opis (angielski, źródło NVD)
MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases. Prior to 2.7.14, 3.3.5, 3.4.3, and 3.5.9, the connector encodes and decodes protocol text and performs client-side escaping under the assumption that the connection character set is UTF-8. The server can report a mid-session change to character_set_client through OK-packet session-state tracking, including a change caused by SET NAMES, a stored routine or trigger, server configuration, or a hostile server. If character_set_client changes to a non-UTF-8 value, the driver continues to read and write UTF-8 while the server interprets the same bytes under another encoding, causing silent data corruption and a client/server charset-confusion mismatch that can defeat byte-wise quoting or escaping. The fix accepts only utf8, utf8mb3, or utf8mb4 after initialization; any other value causes SQLException with SQLState 08000 and closes the connection. This issue is fixed in versions 2.7.14, 3.3.5, 3.4.3, and 3.5.9.

