CVE-2026-45297

Source
https://cve.org/CVERecord?id=CVE-2026-45297
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45297.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-45297
Aliases
  • GHSA-5m23-rcj4-cgjx
Published
2026-05-28T16:50:38Z
Modified
2026-11-04T02:45:45Z
Severity
  • 5.3 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
Cross-tenant IDOR on feature-flag and assist-stats routes via {project_id} case mismatch
Details

OpenReplay is a self-hosted session replay suite. Prior to 1.26.0, there is a cross-tenant IDOR on feature-flag and assist-stats routes via {project_id} case mismatch. ProjectAuthorizer.call (OSS api/auth/auth_project.py:14-38 and EE ee/api/auth/auth_project.py:14-46) only runs projects.is_authorized(project_id, tenant_id, user_id) + projects.get_project(tenant_id, project_id) when self.project_identifier == "projectId" (camelCase). For EE multi-tenant, feature-flag queries only filter on project_id, never tenant_id. Any authenticated user in tenant A can read/update/delete feature-flag rows belonging to tenant B by iterating the sequential integer project_id + feature_flag_id. OSS is single-tenant by design ({"errors":["tenants already registered"]} on second signup) so there's no cross-tenant impact This vulnerability is fixed in 1.26.0.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-285",
        "CWE-639",
        "CWE-863"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45297.json"
}
References

Affected packages

Git / github.com/openreplay/openreplay

Affected ranges

Type
GIT
Repo
https://github.com/openreplay/openreplay
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Database specific
Show details
{
    "extracted_events": [
        {
            "range": [
                {
                    "introduced": "0"
                },
                {
                    "fixed": "1.26.0"
                }
            ],
            "source": "AFFECTED_FIELD",
            "strategy": "StringRangeExpression"
        },
        {
            "range": [
                {
                    "introduced": "0"
                },
                {
                    "fixed": "1.26.0"
                }
            ],
            "source": "DESCRIPTION"
        }
    ]
}

Affected versions

0.*
0.6.17
Other
argo
or-argo-test
pre-v1.*
pre-v1.19.0
pre-v1.20.0
pre-v1.21.0
pre-v1.22.0
pre-v1.24.0
pre-v1.25.0
pre-v1.26.0
pre_v1.*
pre_v1.18.0
v.*
v.1.14.0
v0.*
v0.5.0
v1.*
v1.0.0
v1.1.0
v1.2.0
v1.26.0-backup-20260506161804
v1.26.0-backup-20260507172238
v1.26.0-backup-20260511113804
v1.26.0-backup-20260511115910
v1.26.0-backup-20260511115916
v1.26.0-backup-20260511154703
v1.26.0-backup-20260512150259
v1.26.0-backup-20260513130422
v1.26.0-backup-20260521112024
v1.26.0-backup-20260526174634
v1.26.0-backup-20260529203509
v1.26.0-backup-20260529205158
v1.26.0-backup-20260605121047
v1.26.0-backup-20260611121332
v1.26.0-backup-20260623154551
v1.26.0-backup-20260623161145
v1.26.0-backup-20260625080803
v1.26.0-backup-20260709081131
v1.26.0-backup-20260713134143
v1.26.0-backup-20260715112910
v1.26.0-backup-20260717110755
v1.26.0-backup-20260902120412
v1.26.0-backup-20260914110634
v1.26.0-backup-20260930161821
v1.26.0-backup-20261026115509
v1.26.0-backup-20261026121714
v1.26.0-backup-20261026125558
v1.26.0-backup-20261026162420
v1.26.0-backup-20261026162553
v1.26.0-backup-20261027122029
v1.26.0-backup-20261027122928
v1.26.0-backup-20261028090813
v1.26.0-backup-20261028151246
v1.26.0-backup-20261030151257
v1.26.0-backup-20261103182624
v1.3.0
v1.3.6
v1.4.0
v1.5.0
v1.5.1
v1.5.2
v1.9.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45297.json"