CRITICAL🇬🇧 English

CVE-2021-30118

Kaseya VSA — nieuwierzytelniony arbitrary file upload prowadzący do RCE

CVSS 9.8v3.1pub. 2021-07-09upd. 2024-11-21

Podatność w Kaseya VSA 9.5.4.2149 umożliwia nieuwierzytelnionemu atakującemu przesłanie dowolnych plików na serwer poprzez endpoint /SystemTab/uploader.aspx, a następnie wykonanie ich jako kod ASP. Brak walidacji sesji w połączeniu z możliwością zapisu do webroota czyni tę podatność wyjątkowo niebezpieczną — prowadzi do pełnego przejęcia serwera.

Pokaż oryginał (EN)

An attacker can upload files with the privilege of the Web Server process for Kaseya VSA Unified Remote Monitoring & Management (RMM) 9.5.4.2149 and subsequently use these files to execute asp commands The api /SystemTab/uploader.aspx is vulnerable to an unauthenticated arbitrary file upload leading to RCE. An attacker can upload files with the privilege of the Web Server process and subsequently use these files to execute asp commands. Detailed description --- Given the following request: ``` POST /SystemTab/uploader.aspx?Filename=shellz.aspx&PathData=C%3A%5CKaseya%5CWebPages%5C&__RequestValidationToken=ac1906a5-d511-47e3-8500-47cc4b0ec219&qqfile=shellz.aspx HTTP/1.1 Host: 192.168.1.194 Cookie: sessionId=92812726; %5F%5FRequestValidationToken=ac1906a5%2Dd511%2D47e3%2D8500%2D47cc4b0ec219 Content-Length: 12 <%@ Page Language="C#" Debug="true" validateRequest="false" %> <%@ Import namespace="System.Web.UI.WebControls" %> <%@ Import namespace="System.Diagnostics" %> <%@ Import namespace="System.IO" %> <%@ Import namespace="System" %> <%@ Import namespace="System.Data" %> <%@ Import namespace="System.Data.SqlClient" %> <%@ Import namespace="System.Security.AccessControl" %> <%@ Import namespace="System.Security.Principal" %> <%@ Import namespace="System.Collections.Generic" %> <%@ Import namespace="System.Collections" %> <script runat="server"> private const string password = "pass"; // The password ( pass ) private const string style = "dark"; // The style ( light / dark ) protected void Page_Load(object sender, EventArgs e) { //this.Remote(password); this.Login(password); this.Style(); this.ServerInfo(); <snip> ``` The attacker can control the name of the file written via the qqfile parameter and the location of the file written via the PathData parameter. Even though the call requires that a sessionId cookie is passed we have determined that the sessionId is not actually validated and any numeric value is accepted as valid. Security issues discovered --- * a sessionId cookie is required by /SystemTab/uploader.aspx, but is not actually validated, allowing an attacker to bypass authentication * /SystemTab/uploader.aspx allows an attacker to create a file with arbitrary content in any place the webserver has write access * The web server process has write access to the webroot where the attacker can execute it by requesting the URL of the newly created file. Impact --- This arbitrary file upload allows an attacker to place files of his own choosing on any location on the hard drive of the server the webserver process has access to, including (but not limited to) the webroot. If the attacker uploads files with code to the webroot (e.g. aspx code) he can then execute this code in the context of the webserver to breach either the integrity, confidentiality, or availability of the system or to steal credentials of other users. In other words, this can lead to a full system compromise.

🤖 Analiza AI
Jak działa

Endpoint /SystemTab/uploader.aspx wymaga przekazania cookie sessionId, jednak wartość ta nie jest faktycznie weryfikowana — akceptowana jest dowolna liczba. Atakujący może za pomocą żądania HTTP POST przesłać plik o dowolnej nazwie (parametr qqfile) do dowolnej lokalizacji na dysku serwera (parametr PathData), do której proces Web Servera posiada uprawnienia zapisu. Przesłany plik (np. webshell w formacie .aspx) zapisywany jest bezpośrednio w katalogu webroot, skąd atakujący może go uruchomić, wykonując żądanie HTTP pod adresem URL nowo utworzonego pliku.

Skutki

Atakujący może uzyskać pełną kontrolę nad serwerem — wykonywać dowolny kod w kontekście procesu Web Servera, przejmować dane uwierzytelniające użytkowników, naruszać integralność, poufność i dostępność systemu, co w efekcie prowadzi do pełnego przejęcia systemu (full system compromise).

Mitygacja

Należy zaktualizować Kaseya VSA do wersji 9.5.5 lub nowszej zgodnie z informacjami producenta dostępnymi w referencjach (Feature Release 9.5.5 z 10 kwietnia 2021). Należy zastosować patche dostępne u producenta zgodnie z referencjami.

Kogo dotyczy

Kaseya VSA Unified Remote Monitoring & Management (RMM) w wersji 9.5.4.2149

Uwagi

Podatność została zgłoszona i ujawniona przez DIVD CSIRT (Dutch Institute for Vulnerability Disclosure) w ramach sprawy DIVD-2021-00011. Pełne ujawnienie nastąpiło 7 lipca 2021 roku.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Kaseya Vsa

    APP
    Kaseya
    < 9.5.5
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Auth Bypass
CWE
Referencje

Powiązane podatności

CVE-2021-30117CRITICAL9.8PL ✓ten sam produkt

Kaseya VSA — blind SQL injection w parametrze fldrId (semi-uwierzytelniony)

CVE-2021-30120CRITICAL9.9PL ✓ten sam produkt

Kaseya VSA — pominięcie weryfikacji dwuskładnikowej (2FA bypass)

CVE-2021-30201HIGH7.5ten sam produkt

The API /vsaWS/KaseyaWS.asmx can be used to submit XML to the system. When this XML is processed (external) en...

CVE-2021-30119MEDIUM5.4ten sam produkt

Authenticated reflective XSS in HelpDeskTab/rcResults.asp The parameter result of /HelpDeskTab/rcResults.asp i...

CVE-2021-30121MEDIUM6.5ten sam produkt

Semi-authenticated local file inclusion The contents of arbitrary files can be returned by the webserver Examp...