OpenPanel through 2.3.0 Read-Only Access Level Enforcement Bypass via Mutations
OpenPanel through 2.3.0 fails to enforce read-only project access level on 26 of 29 mutating procedures, allowing read-level members to modify, delete, and publish project data. Attackers with explicit read-only access can delete reports and dashboards, schedule entire projects for deletion, publish private analytics to public share links, and modify alerting rules by exploiting missing access level validation in mutation resolvers.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-88891
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 06:12 UTC · Revision 1
Source evidence
OpenPanel through 2.3.0 Read-Only Access Level Enforcement Bypass via Mutations
core-osv · Original sourcePublished 10 Sept 2026, 13:05 UTC
OpenPanel through 2.3.0 fails to enforce read-only project access level on 26 of 29 mutating procedures, allowing read-level members to modify, delete, and publish project data. Attackers with explicit read-only access can delete reports and dashboards, schedule entire projects for deletion, publish private analytics to public share links, and modify alerting rules by exploiting missing access level validation in mutation resolvers.
osv:CVE-2026-88891
Complete source record
{
"id": "7e7f27b1ad2d3ff5dd724d4dc4a4c29b563a5cdb97750eab6e67d2e370c827a6",
"url": "https://osv.dev/vulnerability/CVE-2026-88891",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "OpenPanel through 2.3.0 Read-Only Access Level Enforcement Bypass via Mutations",
"summary": "OpenPanel through 2.3.0 fails to enforce read-only project access level on 26 of 29 mutating procedures, allowing read-level members to modify, delete, and publish project data. Attackers with explicit read-only access can delete reports and dashboards, schedule entire projects for deletion, publish private analytics to public share links, and modify alerting rules by exploiting missing access level validation in mutation resolvers.",
"evidence": "osv:CVE-2026-88891",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-88891",
"aliases": [
"CVE-2026-88891",
"GHSA-f9rx-pxgw-c6rg"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/openpanel-dev/openpanel",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "5faad3226df8fe03bc9434dfd255afb3fcea4c83"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"last_affected": "2.3.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "5faad3226df8fe03bc9434dfd255afb3fcea4c83"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"worker",
"dashboard",
"api",
"v2.3.0",
"self-hosting"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-88891.json"
}
}
],
"modified": "2026-10-28T02:30:26.337673749Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88891.json",
"https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-f9rx-pxgw-c6rg",
"https://nvd.nist.gov/vuln/detail/CVE-2026-88891",
"https://www.vulncheck.com/advisories/openpanel-read-only-access-level-enforcement-bypass-via-mutations",
"https://github.com/Openpanel-dev/openpanel/commit/5faad3226df8fe03bc9434dfd255afb3fcea4c83"
],
"provider_metadata": {
"cwe_ids": [
"CWE-269"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/88xxx/CVE-2026-88891.json"
}
},
"related_cves": [
{
"value": "CVE-2026-88891",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 492959,
"published_at": "2026-09-10T13:05:39.53+00:00"
}