Krytyczna podatność umożliwiająca zdalne wykonanie kodu (RCE) istnieje w nieuwierzytelnionym endpoincie REST API /99/ImportSQLTable w H2O-3. Atakujący bez żadnych uprawnień może wykonać dowolny kod na serwerze H2O-3, co czyni tę podatność wyjątkowo niebezpieczną.
▸ Pokaż oryginał (EN)
A critical remote code execution vulnerability exists in the unauthenticated REST API endpoint /99/ImportSQLTable in H2O-3 version 3.46.0.9 and prior. The vulnerability arises due to insufficient security controls in the parameter blacklist mechanism, which only targets MySQL JDBC driver-specific dangerous parameters. An attacker can bypass these controls by switching the JDBC URL protocol to jdbc:postgresql: and exploiting PostgreSQL JDBC driver-specific parameters such as socketFactory and socketFactoryArg. This allows unauthenticated attackers to execute arbitrary code on the H2O-3 server with the privileges of the H2O-3 process. The issue is resolved in version 3.46.0.10.
Mechanizm bezpieczeństwa w H2O-3 stosuje blacklistę niebezpiecznych parametrów JDBC, jednak jest ona skierowana wyłącznie przeciwko sterownikowi MySQL. Atakujący może ominąć tę kontrolę, zmieniając protokół URL JDBC z jdbc:mysql: na jdbc:postgresql:, a następnie wykorzystując parametry specyficzne dla sterownika PostgreSQL JDBC, takie jak socketFactory i socketFactoryArg. Endpoint /99/ImportSQLTable nie wymaga uwierzytelnienia, co oznacza, że exploit jest dostępny dla każdego, kto może połączyć się z serwerem. W efekcie możliwe jest załadowanie i wykonanie arbitralnego kodu w kontekście procesu H2O-3.
Nieuwierzytelniony atakujący może wykonać dowolny kod na serwerze H2O-3 z uprawnieniami procesu H2O-3, co może prowadzić do pełnego przejęcia kontroli nad serwerem, wycieku danych oraz dalszego lateral movement w sieci.
Należy zaktualizować H2O-3 do wersji 3.46.0.10, w której problem został rozwiązany. Jeśli natychmiastowa aktualizacja nie jest możliwa, zaleca się ograniczenie dostępu sieciowego do endpointu /99/ImportSQLTable za pomocą firewall lub reguł sieciowych, tak aby był dostępny wyłącznie z zaufanych adresów IP.
H2O-3 w wersji 3.46.0.9 oraz wszystkich wcześniejszych wersjach
Szczegóły podatności zostały opublikowane na platformie huntr.com. Poprawka dostępna jest w commicie b9ae2d3c5220db2dc53753357a783e590364d044 w repozytorium GitHub projektu h2oai/h2o-3.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HH2o
APPH2O< 3.46.0.10
Powiązane podatności
Deserializacja w H2O umożliwia RCE i odczyt plików systemowych
RCE poprzez deserializację w REST API h2oai/h2o-3 (JDBC URL)
H2O.ai H2O — RCE i odczyt plików przez niekontrolowany JDBC URL
An attacker is able to gain remote code execution on a server hosting the H2O dashboard through it's POJO mode...
A vulnerability in the `/3/ParseSetup` endpoint of h2oai/h2o-3 version 3.46.0.1 allows for a denial of service...