CVE-2026-30956
published 2026-03-10CVE-2026-30956: OneUptime is a solution for monitoring and managing online services. Prior to 10.0.21, a low‑privileged user can bypass authorization and tenant isolation in…
PriorityP263critical9.9CVSS 3.1
AVNACLPRLUINSCCHIHAH
EPSS
0.49%
38.7th percentile
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.21, a low‑privileged user can bypass authorization and tenant isolation in OneUptime v10.0.20 and earlier by sending a forged is-multi-tenant-query header together with a controlled projectid header. Because the server trusts this client-supplied header, internal permission checks in BasePermission are skipped and tenant scoping is disabled. This allows attackers to access project data belonging to other tenants, read sensitive User fields via nested relations, leak plaintext resetPasswordToken, and reset the victim’s password and fully take over the account. This results in cross‑tenant data exposure and full account takeover. This vulnerability is fixed in 10.0.21.
Affected
4 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| hackerbay | oneuptime | < 10.0.21 | 10.0.21 |
| oneuptime | common | >= 0 < 10.0.21 | 10.0.21 |
| oneuptime | oneuptime | < 10.0.21 | 10.0.21 |
| oneuptime | oneuptime | >= 0 < 10.0.23 | 10.0.23 |
CVSS provenance
nvdv3.19.9CRITICALCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
ghsa9.9CRITICAL
osv9.9CRITICAL
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
OneUptime: Password Reset Token Logged at INFO Level
ghsa·2026-03-13·CVSS 9.9
CVE-2026-32598 [CRITICAL] CWE-532 OneUptime: Password Reset Token Logged at INFO Level
OneUptime: Password Reset Token Logged at INFO Level
### Summary
The password reset flow logs the complete password reset URL — containing the plaintext reset token — at INFO log level, which is enabled by default in production. Anyone with access to application logs (log aggregation, Docker logs, Kubernetes pod logs) can intercept reset tokens and perform account takeover on any user.
### Details
**Vulnerable code — `App/FeatureSet/Identity/API/Authentication.ts` lines 370-371:**
```typescript
logger.info("User forgot password: " + user.email?.toString());
logger.info("Reset Password URL: " + tokenVerifyUrl);
```
The `tokenVerifyUrl` is a complete URL like `https://app.oneuptime.com/accounts/reset-password/`. This is logged at INFO level, which is enabled by default in production and
OSV
OneUptime: Password Reset Token Logged at INFO Level
osv·2026-03-13·CVSS 9.9
CVE-2026-32598 [CRITICAL] OneUptime: Password Reset Token Logged at INFO Level
OneUptime: Password Reset Token Logged at INFO Level
### Summary
The password reset flow logs the complete password reset URL — containing the plaintext reset token — at INFO log level, which is enabled by default in production. Anyone with access to application logs (log aggregation, Docker logs, Kubernetes pod logs) can intercept reset tokens and perform account takeover on any user.
### Details
**Vulnerable code — `App/FeatureSet/Identity/API/Authentication.ts` lines 370-371:**
```typescript
logger.info("User forgot password: " + user.email?.toString());
logger.info("Reset Password URL: " + tokenVerifyUrl);
```
The `tokenVerifyUrl` is a complete URL like `https://app.oneuptime.com/accounts/reset-password/`. This is logged at INFO level, which is enabled by default in production and
OSV
OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
osv·2026-03-10
CVE-2026-30956 [CRITICAL] OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
### Summary
A low‑privileged user can bypass authorization and tenant isolation in OneUptime `v10.0.20` by sending a forged `is-multi-tenant-query` header together with a controlled `projectid` header.
Because the server trusts this client-supplied header, internal permission checks in `BasePermission` are skipped and tenant scoping is disabled.
This allows attackers to:
1. Access project data belonging to other tenants
2. Read sensitive User fields via nested relations
3. Leak plaintext resetPasswordToken
4. Reset the victim’s password and fully take over the account
This results in cross‑tenant data exposure and full account takeover.
#
GHSA
OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
ghsa·2026-03-10
CVE-2026-30956 [CRITICAL] CWE-285 OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover
### Summary
A low‑privileged user can bypass authorization and tenant isolation in OneUptime `v10.0.20` by sending a forged `is-multi-tenant-query` header together with a controlled `projectid` header.
Because the server trusts this client-supplied header, internal permission checks in `BasePermission` are skipped and tenant scoping is disabled.
This allows attackers to:
1. Access project data belonging to other tenants
2. Read sensitive User fields via nested relations
3. Leak plaintext resetPasswordToken
4. Reset the victim’s password and fully take over the account
This results in cross‑tenant data exposure and full account takeover.
#
No detection rules found.
No public exploits indexed.
2026-03-10
Published