SQLpage w wersjach przed 0.11.1 umożliwia nieuwierzytelnionemu atakującemu zdalne pobranie pliku konfiguracyjnego zawierającego dane połączenia z bazą danych (connection string). Podatność jest krytyczna, ponieważ jej wykorzystanie może prowadzić do bezpośredniego, nieautoryzowanego dostępu do bazy danych ofiary.
▸ Pokaż oryginał (EN)
SQLpage is a SQL-only webapp builder. Someone using SQLpage versions prior to 0.11.1, whose SQLpage instance is exposed publicly, with a database connection string specified in the `sqlpage/sqlpage.json` configuration file (not in an environment variable), with the web_root is the current working directory (the default), and with their database exposed publicly, is vulnerable to an attacker retrieving database connection information from SQLPage and using it to connect to their database directly. Version 0.11.0 fixes this issue. Some workarounds are available. Using an environment variable instead of the configuration file to specify the database connection string prevents exposing it on vulnerable versions. Using a different web root (that is not a parent of the SQLPage configuration directory) fixes the issue. One should also avoid exposing one's database publicly.
Podatność występuje, gdy katalog roboczy aplikacji (web_root) jest jednocześnie katalogiem nadrzędnym katalogu konfiguracyjnego SQLpage, a dane połączenia z bazą danych są zapisane w pliku `sqlpage/sqlpage.json` zamiast w zmiennej środowiskowej. W takiej konfiguracji plik konfiguracyjny jest dostępny przez sieć bez żadnego uwierzytelnienia. Atakujący może pobrać ten plik bezpośrednio przez HTTP, a następnie użyć uzyskanego connection string do samodzielnego połączenia się z bazą danych.
Atakujący może uzyskać pełne dane uwierzytelniające do bazy danych (np. adres serwera, login, hasło) i połączyć się z nią bezpośrednio, co może skutkować kradzieżą, modyfikacją lub zniszczeniem danych przechowywanych w bazie.
Należy zaktualizować SQLpage do wersji 0.11.1 lub nowszej. Jako obejście do czasu aktualizacji: zastąpić connection string w pliku konfiguracyjnym zmienną środowiskową; skonfigurować web_root tak, aby nie był katalogiem nadrzędnym katalogu konfiguracyjnego SQLpage; ograniczyć publiczny dostęp sieciowy do serwera bazy danych.
SQLpage (Lovasoa) w wersjach przed 0.11.1, gdy spełnione są jednocześnie następujące warunki: instancja jest publicznie dostępna, connection string jest określony w pliku `sqlpage/sqlpage.json` (nie w zmiennej środowiskowej), web_root to bieżący katalog roboczy (domyślny), a baza danych jest dostępna publicznie.
Pomimo oceny CVSS 10.0, faktyczne ryzyko jest uzależnione od jednoczesnego spełnienia kilku warunków konfiguracyjnych. Wersja 0.11.0 również zawiera poprawkę według opisu, choć wydanie 0.11.1 jest wskazane w referencjach jako oficjalnie naprawione.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NLovasoa Sqlpage
APPLovasoa< 0.11.1