CRITICAL🇬🇧 English

CVE-2026-45552

Roxy-WI: brak kontroli dostępu do endpointów instalacyjnych (privilege escalation)

CVSS 9.9v3.1pub. 2026-06-10

W Roxy-WI w wersji 8.2.6.4 i wcześniejszych zalogowany użytkownik z dowolną rolą, w tym domyślną rolą gościa (poziom 4), może wywoływać endpointy instalacyjne bez weryfikacji roli ani przynależności do grupy (tenanta). Podatność jest krytyczna, ponieważ pozwala przejąć kontrolę nad serwerami innych tenantów przy użyciu przechowywanych w systemie poświadczeń SSH z uprawnieniami sudo.

Pokaż oryginał (EN)

Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. In versions 8.2.6.4 and prior, the install blueprint declares only bp.before_request → @jwt_required() (app/routes/install/routes.py:36-39). The individual endpoints install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version, and get_task_status are not wrapped in page_for_admin and do not call roxywi_common.is_user_has_access_to_its_group(server_ip) or check_is_server_in_group(server_ip). Only the GET index page (install_monitoring) gates on roxywi_auth.page_for_admin(level=2). Because the missing decorators omit both role and group checks, any logged-in user — including the default guest role 4 — can install/reconfigure exporters, WAF, and GeoIP databases on every server in the Roxy-WI database, regardless of tenant ownership. The Ansible playbooks run with the per-server SSH credential stored in Roxy-WI, which the credentials' rightful owner (a different tenant) has provisioned with sudo rights for the management workflow. At time of publication, there are no publicly available patches.

🤖 Analiza AI
Jak działa

Blueprint instalacyjny wymaga jedynie uwierzytelnienia JWT (dekorator @jwt_required()), ale poszczególne endpointy — install_exporter, install_waf, install_geoip, check_geoip, get_exporter_version oraz get_task_status — nie są chronione przez dekorator page_for_admin ani nie wywołują funkcji sprawdzających przynależność serwera do grupy użytkownika (is_user_has_access_to_its_group, check_is_server_in_group). Jedynie endpoint GET strony głównej (install_monitoring) posiada właściwą kontrolę dostępu na poziomie 2. Atakujący, będąc zalogowanym użytkownikiem, może wskazać dowolny serwer z bazy danych Roxy-WI — niezależnie od przynależności do tenanta — i zainicjować na nim instalację lub rekonfigurację przez playbooki Ansible. Playbooki uruchamiane są z poświadczeniami SSH przypisanymi do danego serwera, które właściciel innego tenanta skonfigurował z uprawnieniami sudo na potrzeby zarządzania.

Skutki

Atakujący może instalować i rekonfigurować eksportery metryk, moduły WAF oraz bazy danych GeoIP na serwerach należących do innych tenantów, wykorzystując przechowywane poświadczenia SSH z uprawnieniami sudo, co w praktyce umożliwia pełne przejęcie kontroli nad infrastrukturą ofiary (privilege escalation, potencjalne RCE w kontekście zarządzanych serwerów).

Mitygacja

W chwili publikacji podatności nie były dostępne żadne publiczne patche. Należy śledzić repozytorium projektu oraz opublikowane doradztwo bezpieczeństwa (GHSA-v3f8-g2v8-jq5h) i zastosować patche niezwłocznie po ich udostępnieniu. Tymczasowo zaleca się ograniczenie dostępu do interfejsu Roxy-WI wyłącznie do zaufanych użytkowników, wyłączenie kont gości oraz zastosowanie kontroli dostępu na poziomie sieci (firewall, VPN).

Kogo dotyczy

Roxy-WI w wersji 8.2.6.4 oraz wcześniejszych

Uwagi

W momencie publikacji (2026-06-10) brak publicznie dostępnych patchy — informacja pochodzi bezpośrednio z opisu podatności.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje
CVE-2026-45552 — Roxy-WI: brak kontroli dostępu do endpointów instalacyjnych (privilege escalation) — CRITICAL 9.9 | CVEbaza.pl