// For flags

CVE-2023-49805

Uptime Kuma Missing Origin Validation in WebSockets

Severity Score

8.8
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

1
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

Uptime Kuma is an easy-to-use self-hosted monitoring tool. Prior to version 1.23.9, the application uses WebSocket (with Socket.io), but it does not verify that the source of communication is valid. This allows third-party website to access the application on behalf of their client. When connecting to the server using Socket.IO, the server does not validate the `Origin` header leading to other site being able to open connections to the server and communicate with it. Other websites still need to authenticate to access most features, however this can be used to circumvent firewall protections made in place by people deploying the application.

Without origin validation, Javascript executed from another origin would be allowed to connect to the application without any user interaction. Without login credentials, such a connection is unable to access protected endpoints containing sensitive data of the application. However, such a connection may allow attacker to further exploit unseen vulnerabilities of the application. Users with "No-auth" mode configured who are relying on a reverse proxy or firewall to provide protection to the application would be especially vulnerable as it would grant the attacker full access to the application.

In version 1.23.9, additional verification of the HTTP Origin header has been added to the socket.io connection handler. By default, if the `Origin` header is present, it would be checked against the Host header. Connection would be denied if the hostnames do not match, which would indicate that the request is cross-origin. Connection would be allowed if the `Origin` header is not present. Users can override this behavior by setting environment variable `UPTIME_KUMA_WS_ORIGIN_CHECK=bypass`.

Uptime Kuma es una herramienta de monitorización autohospedada y fácil de usar. Antes de la versión 1.23.9, la aplicación utiliza WebSocket (con Socket.io), pero no verifica que la fuente de comunicación sea válida. Esto permite que el sitio web de terceros acceda a la aplicación en nombre de su cliente. Al conectarse al servidor usando Socket.IO, el servidor no valida el encabezado "Origin", lo que hace que otro sitio pueda abrir conexiones al servidor y comunicarse con él. Otros sitios web aún necesitan autenticarse para acceder a la mayoría de las funciones; sin embargo, esto se puede usar para eludir las protecciones de firewall implementadas por las personas que implementan la aplicación. Sin la validación del origen, el Javascript ejecutado desde otro origen podría conectarse a la aplicación sin ninguna interacción del usuario. Sin credenciales de inicio de sesión, dicha conexión no puede acceder a endpoints protegidos que contengan datos confidenciales de la aplicación. Sin embargo, dicha conexión puede permitir al atacante explotar aún más vulnerabilidades invisibles de la aplicación. Los usuarios con el modo "Sin autenticación" configurado que dependen de un proxy inverso o un firewall para brindar protección a la aplicación serían especialmente vulnerables ya que otorgarían al atacante acceso completo a la aplicación. En la versión 1.23.9, se agregó verificación adicional del encabezado de origen HTTP al controlador de conexión socket.io. De forma predeterminada, si el encabezado "Origin" está presente, se comparará con el encabezado Host. Se denegaría la conexión si los nombres de host no coinciden, lo que indicaría que la solicitud es de origen cruzado. Se permitirá la conexión si el encabezado "Origin" no está presente. Los usuarios pueden anular este comportamiento configurando la variable de entorno `UPTIME_KUMA_WS_ORIGIN_CHECK=bypass`.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2023-11-30 CVE Reserved
  • 2023-12-11 CVE Published
  • 2023-12-15 EPSS Updated
  • 2024-08-02 CVE Updated
  • 2024-08-02 First Exploit
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
CWE
  • CWE-346: Origin Validation Error
  • CWE-1385: Missing Origin Validation in WebSockets
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Dockge.kuma
Search vendor "Dockge.kuma"
Dockge
Search vendor "Dockge.kuma" for product "Dockge"
< 1.3.3
Search vendor "Dockge.kuma" for product "Dockge" and version " < 1.3.3"
-
Affected
Uptime.kuma
Search vendor "Uptime.kuma"
Uptime Kuma
Search vendor "Uptime.kuma" for product "Uptime Kuma"
< 1.23.9
Search vendor "Uptime.kuma" for product "Uptime Kuma" and version " < 1.23.9"
-
Affected