Amazon Redshift JDBC Driver w wersjach wcześniejszych niż 2.2.2 może ładować i wykonywać dowolne klasy podczas przetwarzania parametrów URL połączenia JDBC. Podatność umożliwia wykonanie kodu w kontekście aplikacji przez osobę mogącą wpłynąć na treść URL połączenia.
▸ Pokaż oryginał (EN)
An issue exists in Amazon Redshift JDBC Driver versions prior to 2.2.2. Under certain conditions, the driver could load and execute arbitrary classes when processing JDBC connection URL parameters. An actor who can influence the connection URL could potentially execute code in the application context, provided a suitable class is available on the application's classpath. To mitigate this issue, users should upgrade to version 2.2.2 or later.
Błąd sklasyfikowany jako CWE-470 (Use of Externally-Controlled Input to Select Classes or Code) polega na tym, że sterownik JDBC podczas parsowania parametrów URL połączenia nie weryfikuje odpowiednio nazw klas przekazywanych z zewnątrz. Przy spełnieniu określonych warunków sterownik dynamicznie ładuje i wykonuje klasę wskazaną przez atakującego. Warunkiem skutecznego ataku jest dostępność odpowiedniej klasy na classpath aplikacji (tzw. gadget class), co ogranicza exploitowalność, lecz nie eliminuje ryzyka w typowych środowiskach serwerowych.
Atakujący mogący kontrolować parametry URL połączenia JDBC może doprowadzić do wykonania dowolnego kodu w kontekście procesu aplikacji, co w praktyce może oznaczać pełne przejęcie kontroli nad aplikacją i dostęp do przetwarzanych przez nią danych.
Należy zaktualizować Amazon Redshift JDBC Driver do wersji 2.2.2 lub nowszej. Paczka jest dostępna w repozytorium GitHub producenta: https://github.com/aws/amazon-redshift-jdbc-driver/releases/tag/v2.2.2. Dodatkowo zaleca się ograniczenie możliwości modyfikacji URL połączeń JDBC przez nieuprawnione podmioty oraz przegląd classpath aplikacji pod kątem obecności klas potencjalnie podatnych na nadużycie.
Amazon Redshift JDBC Driver w wersjach wcześniejszych niż 2.2.2
Podatność wymaga spełnienia specyficznych warunków: atakujący musi mieć możliwość wpływu na URL połączenia JDBC, a na classpath aplikacji musi znajdować się odpowiednia klasa umożliwiająca wykonanie kodu. Czynniki te podnoszą wymaganą złożoność ataku (CVSS AC:H, AT:P), mimo krytycznego wyniku bazowego 9.2.
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X