OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header
Description
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
OneUptime v10.0.20 and earlier allows low-privileged users to bypass authorization and tenant isolation via a forged is-multi-tenant-query header, leading to cross-tenant data exposure and account takeover.
Vulnerability
Overview In OneUptime prior to version 10.0.21, the server trusts a client-supplied HTTP header (is-multi-tenant-query) to determine whether to skip internal permission checks. When an attacker sends this header with a value of true, the server disables tenant isolation and skips authorization checks in BasePermission.ts, including table, query, and select permission validation [1][2]. This design flaw allows a low-privileged user to bypass security controls without authentication.
Exploitation
An attacker can exploit this by simply adding the is-multi-tenant-query: true and a controlled projectid header to any API request. The server then processes the request as if it were a multi-tenant query, bypassing all permission checks and tenant scoping. This requires no special privileges beyond a valid low-privileged account, and the attack can be performed remotely over the network [2].
Impact
Successful exploitation enables the attacker to access project data belonging to other tenants, read sensitive User fields (such as password, resetPasswordToken, and webauthnChallenge) via nested relations, and leak the plaintext reset token. Since the reset token is stored in plaintext, the attacker can immediately reset the victim's password and fully take over the account, resulting in cross-tenant data exposure and complete account compromise [1][2].
Mitigation
The vulnerability is fixed in OneUptime version 10.0.21, which removes trust in client-supplied headers for authorization decisions. Users are strongly advised to upgrade immediately [4]. No workarounds have been published.
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
@oneuptime/commonnpm | < 10.0.21 | 10.0.21 |
Affected products
2- OneUptime/oneuptimev5Range: < 10.0.21
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
4- github.com/advisories/GHSA-r5v6-2599-9g3mghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-30956ghsaADVISORY
- github.com/OneUptime/oneuptime/releases/tag/10.0.21ghsax_refsource_MISCWEB
- github.com/OneUptime/oneuptime/security/advisories/GHSA-r5v6-2599-9g3mghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.