Skip to content

Changing Password does not close all logged in socket connections immediately

Moderate
louislam published GHSA-88j4-pcx8-q4q3 Dec 10, 2023

Package

docker louislam/dockge (Docker)

Affected versions

<= 1.3.2

Patched versions

1.3.3
docker louislam/uptime-kuma (Docker)
<= 1.23.8
1.23.9
npm louislam/uptime-kuma (npm)
<= 1.23.8
1.23.9

Description

Warning

As is written in our security policy, please DON'T REPORT SECURITY ISSUES TO OUR PUBLIC ISSUE TRACKER
Posting as an advisory and then create a security-issue without details allows us to privately come up with a securty fix without having to scramble and potentialy miss/break something.
These steps were violated in this case, as the issue was first raised as a bug-report in issue #4188 1

Overview:

A moderate security vulnerability has been identified in Uptime Kuma platform that poses a significant threat to the confidentiality and integrity of user accounts.
When a user changes their login password in Uptime Kuma, a previously logged-in user retains access without being logged out.
This behaviour persists consistently, even after system restarts or browser restarts.
This vulnerability allows unauthorized access to user accounts, compromising the security of sensitive information.

The same vulnerability was partially fixed in GHSA-g9v2-wqcj-j99g but logging existing users out of their accounts was forgotten.

Impact:

The impact of this vulnerability is moderate, as it enables attackers or unauthorized individuals to maintain access to user accounts even after the account password has been changed. This can lead to unauthorized data access, manipulation, or compromise of user accounts, posing a threat to the integrity and confidentiality of Uptime Kuma.
A better impact-analysis is included in GHSA-g9v2-wqcj-j99g

PoC

  • Change the password for a user account
  • Access the platform using the previously logged-in account without logging out
  • Note that access (read-write) remains despite the password change
  • Expected behaviour:
    After changing the password for a user account, all previously logged-in sessions should be invalidated, requiring users to log in again with the updated credentials.
  • Actual behaviour:
    The system retains sessions and never logs out users unless explicitly done by clicking logout.

Remediation:

To mitigate the risks associated with this vulnerability, we made the server emit a refresh event (clients handle this by reloading) and then disconnecting all clients except the one initiating the password change.

It is recommended to Update Uptime Kuma to >= 1.23.9.

Timeline:

Date Event
2023-12-07 14:35 UTC @manoonabbasi discovered and posts this information as a bug-report in issue #4188 1 into our public issue tracker, which is against our security policy
2023-12-07 16:50 UTC The Uptime Kuma team deleted the post in our issue tracker
2023-12-10 18:10 UTC Uptime Kuma team released patch and this Advisory

Footnotes

  1. deleted to prevent the spread of this vulnerability without there being a fix available 2

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
High
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2023-49804

Weaknesses

No CWEs

Credits