Miggo Logo

CVE-2023-44400: Uptime Kuma has Persistentent User Sessions

7.8

CVSS Score
3.1

Basic Information

EPSS Score
0.12084%
Published
10/10/2023
Updated
11/8/2023
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
uptime-kumanpm< 1.23.31.23.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from two key issues in server.js: 1) The original JWT generation (via jwt.sign) only included the username, without binding tokens to password state. 2) The token validation process didn't check for password changes or enforce expiration. The commit added password hash verification (via shake256) in User.createJWT and validation checks, confirming these were the vulnerable areas. The absence of these security measures in pre-patch versions allowed persistent session hijacking.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

# Summ*ry *tt**k*rs wit* ****ss to * us*rs' **vi** **n **in p*rsist*nt ***ount ****ss. T*is is **us** *y missin* v*ri*i**tion o* S*ssion Tok*ns **t*r p*sswor* ***n**s *n*/or *l*ps** in**tivity-p*rio*s. # **t*ils `uptim*-kum*` s*ts JWT tok*ns *or u

Reasoning

T** vuln*r**ility st*mm** *rom two k*y issu*s in `s*rv*r.js`: *) T** ori*in*l JWT **n*r*tion (vi* `jwt.si*n`) only in*lu*** t** us*rn*m*, wit*out *in*in* tok*ns to p*sswor* st*t*. *) T** tok*n `v*li**tion` `pro**ss` *i*n't ****k *or p*sswor* ***n**s