CVE-2023-49805

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`.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:dockge.kuma:dockge:*:*:*:*:*:*:*:*
cpe:2.3:a:uptime.kuma:uptime_kuma:*:*:*:*:*:*:*:*

History

14 Dec 2023, 19:48

Type Values Removed Values Added
References () https://github.com/louislam/uptime-kuma/commit/2815cc73cfd9d8ced889e00e72899708220d184f - () https://github.com/louislam/uptime-kuma/commit/2815cc73cfd9d8ced889e00e72899708220d184f - Patch
References () https://github.com/louislam/uptime-kuma/security/advisories/GHSA-mj22-23ff-2hrr - () https://github.com/louislam/uptime-kuma/security/advisories/GHSA-mj22-23ff-2hrr - Exploit, Vendor Advisory
CPE cpe:2.3:a:uptime.kuma:uptime_kuma:*:*:*:*:*:*:*:*
cpe:2.3:a:dockge.kuma:dockge:*:*:*:*:*:*:*:*
CWE CWE-346
CVSS v2 : unknown
v3 : 6.0
v2 : unknown
v3 : 8.8
First Time Dockge.kuma dockge
Dockge.kuma
Uptime.kuma
Uptime.kuma uptime Kuma

12 Dec 2023, 13:43

Type Values Removed Values Added
Summary
  • (es) 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`.

11 Dec 2023, 23:15

Type Values Removed Values Added
New CVE

Information

Published : 2023-12-11 23:15

Updated : 2023-12-14 19:48


NVD link : CVE-2023-49805

Mitre link : CVE-2023-49805

CVE.ORG link : CVE-2023-49805


JSON object : View

Products Affected

uptime.kuma

  • uptime_kuma

dockge.kuma

  • dockge
CWE
CWE-346

Origin Validation Error

CWE-1385