Podatność typu SQL injection (CWE-89) w telemetrycznym API produktu OneUptime umożliwia uwierzytelnionemu użytkownikowi wstrzyknięcie dowolnego kodu SQL do zapytań ClickHouse. Ze względu na brak walidacji danych wejściowych i brak parametryzacji zapytań, atakujący może uzyskać pełny dostęp do bazy danych, modyfikować dane oraz potencjalnie wykonać zdalny kod.
▸ Pokaż oryginał (EN)
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.23, the telemetry aggregation API accepts user-controlled aggregationType, aggregateColumnName, and aggregationTimestampColumnName parameters and interpolates them directly into ClickHouse SQL queries via the .append() method (documented as "trusted SQL"). There is no allowlist, no parameterized query binding, and no input validation. An authenticated user can inject arbitrary SQL into ClickHouse, enabling full database read (including telemetry data from all tenants), data modification, and potential remote code execution via ClickHouse table functions. This vulnerability is fixed in 10.0.23.
API agregacji telemetrii przyjmuje kontrolowane przez użytkownika parametry: aggregationType, aggregateColumnName oraz aggregationTimestampColumnName. Wartości te są bezpośrednio interpolowane do zapytań SQL ClickHouse za pomocą metody .append(), opisanej wewnętrznie jako 'trusted SQL'. Brak listy dozwolonych wartości (allowlist), brak mechanizmu parametryzacji zapytań (parameterized query binding) oraz brak jakiejkolwiek walidacji wejścia sprawia, że atakujący może dowolnie kształtować treść wykonywanego zapytania SQL. Poprzez odpowiednio spreparowane wartości parametrów możliwe jest nadużycie wbudowanych funkcji tabelarycznych ClickHouse do eskalacji ataku.
Atakujący może odczytać dane telemetryczne wszystkich najemców (multi-tenant), modyfikować lub usuwać dane w bazie ClickHouse, a poprzez funkcje tabelaryczne ClickHouse potencjalnie wykonać zdalny kod (RCE) na serwerze.
Należy zaktualizować OneUptime do wersji 10.0.23 lub nowszej, w której podatność została naprawiona. Szczegóły dostępne w referencjach producenta: https://github.com/OneUptime/oneuptime/security/advisories/GHSA-p5g2-jm85-8g35
OneUptime (Hackerbay) we wszystkich wersjach poprzedzających 10.0.23.
Podatność wymaga uwierzytelnienia (PR:L), jednak zakres ataku obejmuje dane wszystkich najemców w środowiskach wielodzierżawczych (Scope: Changed), co znacząco zwiększa rzeczywiste ryzyko. Poprawka została wprowadzona w wersji 10.0.23.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HHackerbay Oneuptime
APPHackerbay< 10.0.23
Powiązane podatności
OneUptime: nieautoryzowany dostęp do endpointów powiadomień i zarządzania numerami
Brak uwierzytelnienia w endpointach workflow w OneUptime (RCE)
Brak uwierzytelnienia w API powiadomień OneUptime — obejście autoryzacji
RCE w OneUptime — command injection przez Playwright w Synthetic Monitor
OneUptime: RCE przez niebezpieczny Playwright sandbox w Synthetic Monitors