CVE-2026-107384
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 37 - wyżej niż 37% wszystkich znanych CVE
Streszczenie
Podatność w MariaDB Connector/Node.js od wersji 3.2.0 do 3.2.5, 3.3.4, 3.4.7 i 3.5.4. Gdy włączona jest opcja permitSetMultiParamEntries, klucze obiektów są rozwijane do klauzuli SQL SET bez przetwarzania przez escapeId, co pozwala na wstrzyknięcie SQL przez klucz zawierający backtick.
Ocena ryzyka
Atakujący może zaktualizować kolumny, których aplikacja nie zamierzała udostępniać, oraz dołączyć dowolny SQL z uprawnieniami użytkownika bazy danych.
Rekomendacja
Zaktualizuj MariaDB Connector/Node.js do wersji 3.2.5, 3.3.4, 3.4.7 lub 3.5.4. Jeśli opcja permitSetMultiParamEntries nie jest wymagana, pozostaw ją wyłączoną.
Inne podatności w MariaDB Connector/Node.js
Zobacz wszystkie- CVE-2026-107385Wysokie
Podatność w MariaDB Connector/Node.js przed wersjami 3.2.5, 3.3.4, 3.4.7 i 3.5.4. Podczas korzystania z protokołu tekstowego, escapowanie zawsze poprzedza cudzysłowy backslashem i nie honoruje trybu NO_BACKSLASH_ESCAPES, co pozwala na wstrzyknięcie SQL przez wartość kontrolowaną przez atakującego.
- CVE-2026-107383Wysokie
Podatność w MariaDB Connector/Node.js przed wersjami 3.2.5, 3.3.4, 3.4.7 i 3.5.4. Kodery binarne GeoJSON Polygon i MultiPolygon alokują pamięć przez Buffer.allocUnsafe() na podstawie długości liczbowej pierścienia przed potwierdzeniem, że pierścień jest tablicą, co może ujawnić niezainicjalizowane dane z pamięci Node.js.
- CVE-2026-107382Średnie
W MariaDB Connector/Node.js w wersjach od 3.3.0 do 3.5.4, ścieżka walidacji odcisku palca TLS przy zerowej konfiguracji wywołuje Ed25519PasswordAuth.hash() przez Authentication.validateFingerPrint, ale Ed25519PasswordAuth.hash() odwołuje się do identyfikatora seed, który nie jest w zakresie. W określonych warunkach (serwer MariaDB przez TCP, TLS z ssl: true lub obiektem ssl z rejectUnauthorized nie równym false, ustawione hasło, brak ssl.ca, negocjowany plugin client_ed25519) może wystąpić synchroniczny ReferenceError, który w domyślnym zachowaniu Node.js powoduje zakończenie procesu klienta (odmowa usługi). Problem został naprawiony w wersji 3.5.4.
- CVE-2026-55855Średnie
MariaDB Connector/Node.js przed wersjami 3.2.4, 3.3.3, 3.4.6 i 3.5.3 pozwala na wstrzyknięcie SQL, gdy kontrolowane przez atakującego parametry Buffer są escapowane po stronie klienta przy zestawach znaków big5, gbk, sjis, cp932 lub gb18030. PacketOutputStream.writeBufferEscape w lib/io/packet-output-stream.js escapował bajty bez uwzględnienia logiki charset-aware getMbRecognizer z lib/misc/charset-mb.js. Serwerowy lekser SQL uruchamia my_ismbchar przed przetwarzaniem escapowania, więc kontrolowany bajt może skonsumować wstawiony backslash 0x5C jako bajt wielobajtowy i pozostawić następujący cudzysłów 0x27 nieescapowany, kończąc literał łańcuchowy i pozwalając na dowolne SQL. Domyślny zestaw utf8mb4 i parametry wysyłane przez ścieżkę execute binary prepared-statement nie są podatne.
- CVE-2026-55854Średnie
MariaDB Connector/Node.js przed wersjami 3.2.4, 3.3.3, 3.4.6 i 3.5.3 może ujawnić hasło konta, gdy uwierzytelnianie PAM dialog jest negocjowane przez niezabezpieczony transport. W lib/cmd/handshake/auth/pam-password-auth.js i lib/cmd/handshake/authentication.js, zachowanie SendPamAuthPacketFactory dla pluginu dialog po stronie serwera nie miało zabezpieczenia bezpiecznego transportu zastosowanego do mysql_clear_password. Przy domyślnych ustawieniach sslMode=DISABLE i restrictedAuth=null, wrogi lub on-path serwer może wysłać Authentication Switch Request dla dialog przez zwykłe TCP, powodując, że sterownik zwróci hasło konta w postaci jawnego tekstu. Poprawnie zweryfikowane TLS i lokalny gniazdo Unix zapobiegają tej ścieżce, podczas gdy walidacja tożsamości serwera tylko na podstawie odcisku palca nie jest wystarczająca.
- CVE-2026-55215Wysokie
MariaDB Connector/Node.js przed wersjami 3.3.3, 3.4.6 i 3.5.3, gdy SSL jest włączony bez przypiętego certyfikatu CA lub serwera, wysyła poświadczenia przed zakończeniem weryfikacji odcisku certyfikatu. Aktywny atakujący typu man-in-the-middle może przechwycić hasło bazy danych.
Oryginalny opis (angielski, źródło NVD)
MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. From 3.2.0 until 3.2.5, 3.3.4, 3.4.7, and 3.5.4, applications that enable permitSetMultiParamEntries can pass objects whose keys are expanded into a SQL SET clause without being processed by escapeId. An attacker-controlled key containing a backtick can close the quoted identifier and cause the remainder of the key to be interpreted as SQL. This can update columns the application did not intend to expose and can append arbitrary SQL with the database user's privileges. The option is disabled by default, and serialized-object handling used when it is disabled is not affected. This issue is fixed in versions 3.2.5, 3.3.4, 3.4.7, and 3.5.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

