CVE-2023-4822
High · 7.2CVSS
7.2
EPSS
1.3%
Published
Oct 16, 2023
CISA due date
—
Cloudanix analysis
In Grafana setups that use multiple organizations, an administrator in one group can secretly change who can see or edit data and settings in every other group.
- Exploitation
- Remote Authenticated
- Attacker needs
- High Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Application
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Authorization bypass allowing an Organization Admin in one organization to modify role permissions (Viewer, Editor, Admin) across all organizations and globally assign or revoke any permissions they hold to any user.
Why it matters to the business
Admins in one team can silently gain or remove access to monitoring data and configurations belonging to other teams or the entire instance, increasing risk of data exposure or unauthorized changes in shared observability platforms.
How an attack unfolds
An attacker who already holds Organization Admin in at least one organization identifies other organizations or users they can reach, then uses the vulnerable permission-modification interfaces to elevate their own roles or alter permissions for others without needing membership in additional organizations.
How to fix it
Upgrade Grafana to the first patched release that addresses CVE-2023-4822. Until then restrict Organization Admin grants to trusted users only and enable detailed audit logging for permission changes.
How to confirm the fix worked
Confirm Grafana version is newer than the vulnerable releases, review audit logs for cross-organization permission modifications, and test that Organization Admins can no longer alter roles outside their own organization.
Typical attack path
- Obtain Organization Admin role in a single organization
- Enumerate other organizations and users via existing API access
- Issue requests that modify role permissions or user grants across organizations
- Elevate self or restrict others to achieve desired access
How to detect it
Search Grafana audit logs and HTTP access logs for permission-update API calls originating from Organization Admin accounts that affect organizations other than the caller's own; look for repeated role or user permission changes outside normal administrative activity.
- /api/admin/users/*/permissions
- /api/orgs/*/users/*/permissions
- permission update events referencing multiple orgIds
- grafana-server audit entries showing role changes by non-server-admin users
What your security team should do
- Immediately audit all Organization Admin assignments and reduce their number
- Enable and retain Grafana audit logs for permission changes
- Upgrade to the fixed Grafana version as soon as it is released
- Monitor EPSS and KEV status for any future increase in exploit activity
The record
Grafana is an open-source platform for monitoring and observability. The vulnerability impacts Grafana instances with several organizations, and allows a user with Organization Admin permissions in one organization to change the permissions associated with Organization Viewer, Organization Editor and Organization Admin roles in all organizations. It also allows an Organization Admin to assign or revoke any permissions that they have to any user globally. This means that any Organization Admin can elevate their own permissions in any organization that they are already a member of, or elevate or restrict the permissions of any other user. The vulnerability does not allow a user to become a member of an organization that they are not already a member of, or to add any other users to an organization that the current user is not a member of.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/grafana/grafana | 0 | No fix |
| Bitnami | grafana | 8.0.0 | 9.4.16 |
| Chainguard | grafana-10.1 | 0 | 0 |
| Chainguard | grafana-9 | 0 | 0 |
| Chainguard | grafana-9-fips | 0 | 0 |
| Chainguard | grafana-9-fips-oci-compat | 0 | 0 |
| Chainguard | grafana-oci-compat-9 | 0 | 0 |
| Red Hat:ceph_storage:7.1::el8 | ceph | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-base | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-base-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-common | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-common-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-debugsource | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-exporter-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-fuse | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-fuse-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-immutable-object-cache | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-immutable-object-cache-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-mds-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-mgr-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-mib | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-mon-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-osd-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-radosgw-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-resource-agents | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-selinux | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | ceph-test-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | cephfs-mirror-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | cephfs-top | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | gperftools | 0 | 1:2.7-9.el8cp |
| Red Hat:ceph_storage:7.1::el8 | gperftools-debugsource | 0 | 1:2.7-9.el8cp |
| Red Hat:ceph_storage:7.1::el8 | gperftools-libs | 0 | 1:2.7-9.el8cp |
| Red Hat:ceph_storage:7.1::el8 | gperftools-libs-debuginfo | 0 | 1:2.7-9.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libcephfs-devel | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libcephfs2 | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libcephfs2-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libcephsqlite-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | liboath | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | liboath-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libpskc-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librados-devel | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librados-devel-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librados2 | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librados2-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libradospp-devel | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libradosstriper1 | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libradosstriper1-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librbd-devel | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librbd1 | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librbd1-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librgw-devel | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librgw2 | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | librgw2-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libunwind | 0 | 0:1.3.1-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libunwind-debuginfo | 0 | 0:1.3.1-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | libunwind-debugsource | 0 | 0:1.3.1-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | oath-toolkit | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | oath-toolkit-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | oath-toolkit-debugsource | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | oathtool-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | pam_oath-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | pskctool-debuginfo | 0 | 0:2.6.2-3.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-ceph-argparse | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-ceph-common | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-cephfs | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-cephfs-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rados | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rados-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rbd | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rbd-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rgw | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-rgw-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | python3-thrift-debuginfo | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | rbd-fuse-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | rbd-mirror-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | rbd-nbd | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | rbd-nbd-debuginfo | 0 | 2:18.2.1-194.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift-debuginfo | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift-debugsource | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift-devel-debuginfo | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift-glib-debuginfo | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el8 | thrift-qt-debuginfo | 0 | 0:0.13.0-2.el8cp |
| Red Hat:ceph_storage:7.1::el9 | ceph | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-base | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-base-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-common | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-common-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-debugsource | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-exporter-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-fuse | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-fuse-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-immutable-object-cache | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-immutable-object-cache-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-mds-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-mgr-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-mib | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-mon-client-nvmeof-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-mon-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-osd-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-radosgw-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-resource-agents | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-selinux | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | ceph-test-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | cephadm | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | cephadm-ansible | 0 | 1:3.2.0-1.el9cp |
| Red Hat:ceph_storage:7.1::el9 | cephfs-mirror-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | cephfs-top | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libcephfs-devel | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libcephfs2 | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libcephfs2-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libcephsqlite-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librados-devel | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librados-devel-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librados2 | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librados2-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libradospp-devel | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libradosstriper1 | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | libradosstriper1-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librbd-devel | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librbd1 | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librbd1-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librgw-devel | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librgw2 | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | librgw2-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-ceph-argparse | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-ceph-common | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-cephfs | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-cephfs-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rados | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rados-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rbd | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rbd-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rgw | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | python3-rgw-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | rbd-fuse-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | rbd-mirror-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | rbd-nbd | 0 | 2:18.2.1-194.el9cp |
| Red Hat:ceph_storage:7.1::el9 | rbd-nbd-debuginfo | 0 | 2:18.2.1-194.el9cp |
| Ubuntu:16.04:LTS | grafana | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | grafana | 0 | No fix |
Related vulnerabilities
- CVE-2025-41115 Grafana Incorrect Privilege Assignment vulnerability Also affects github.com/grafana/grafana
- CVE-2025-6023 An open redirect vulnerability has been identified in Grafana OSS that can be exploited… Also affects github.com/grafana/grafana
- CVE-2025-4123 A cross-site scripting (XSS) vulnerability exists in Grafana caused by combining a client… Also affects github.com/grafana/grafana
- CVE-2024-10452 Grafana org admin can delete pending invites in different org Also affects github.com/grafana/grafana
- CVE-2024-9264 Grafana Command Injection And Local File Inclusion Via Sql Expressions Also affects github.com/grafana/grafana
- CVE-2024-6322 Access control for plugin data sources protected by the ReqActions json field of the… Also affects github.com/grafana/grafana
- CVE-2024-1313 It is possible for a user in a different organization from the owner of a snapshot to… Also affects github.com/grafana/grafana
- CVE-2024-1442 A user with the permissions to create a data source can use Grafana API to create a data… Also affects github.com/grafana/grafana