Description
Weaviate before 1.38.0 does not verify that a principal performing an RBAC role assignment holds the permissions granted by the assigned role. The assignRoleToUser and assignRoleToGroup handlers (POST /authz/users/{id}/assign and /authz/groups/{id}/assign) authorize only that the caller may assign roles to the target user or group, not the permissions contained in the assigned roles, unlike role creation which enforces that a user can only create roles with permissions less than or equal to its own. A user holding only the delegated assign_and_revoke_users or assign_and_revoke_groups permission can assign the built-in admin role, or any high-privilege custom role, to itself or others, escalating to full administrative control of the database.
Published: 2026-07-02
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Weaviate versions prior to 1.38.0 fail to confirm that a principal assigning a role possesses the same or lower permissions as the role being granted. The assignment endpoints in the RBAC system allow a caller with only the "assign_and_revoke_users" or "assign_and_revoke_groups" permission to attach the built‑in admin role—or any high‑privilege custom role—to another user or group. This bypasses the hierarchy that ordinarily limits granted permissions, enabling an attacker to acquire full administrative control of the database. The weakness is catalogued as CWE-266, Privilege Escalation.

Affected Systems

All deployments of the Weaviate database running any release before version 1.38.0. The affected product is Weaviate by Weaviate. Any user interacting with the role‑assignment endpoints on these releases could be susceptible.

Risk and Exploitability

The CVSS score of 8.7 indicates a high severity vulnerability. The EPSS score is less than 1 %, implying a low but non‑zero probability of exploitation in the wild. The flaw is not listed in CISA’s KEV catalog. Exploitation would occur remotely via the REST API; an authenticated attacker who holds either the "assign_and_revoke_users" or "assign_and_revoke_groups" permission can assign a high‑privilege role to themselves or others, thereby gaining administrative rights over the entire system.

Generated by OpenCVE AI on July 21, 2026 at 10:54 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Weaviate 1.38.0 or a later release where the role‑assignment permission check is enforced.
  • Audit all accounts that received privileged roles during the affected window and revoke any unintended assignments.
  • Restrict the "assign_and_revoke_users" and "assign_and_revoke_groups" permissions to trusted administrators only, ensuring only users with legitimate need can grant roles.

Generated by OpenCVE AI on July 21, 2026 at 10:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 06 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 02 Jul 2026 20:15:00 +0000

Type Values Removed Values Added
Description Weaviate before 1.38.0 does not verify that a principal performing an RBAC role assignment holds the permissions granted by the assigned role. The assignRoleToUser and assignRoleToGroup handlers (POST /authz/users/{id}/assign and /authz/groups/{id}/assign) authorize only that the caller may assign roles to the target user or group, not the permissions contained in the assigned roles, unlike role creation which enforces that a user can only create roles with permissions less than or equal to its own. A user holding only the delegated assign_and_revoke_users or assign_and_revoke_groups permission can assign the built-in admin role, or any high-privilege custom role, to itself or others, escalating to full administrative control of the database.
Title Weaviate < 1.38.0 - Privilege Escalation via Unchecked Permissions in RBAC Role Assignment
First Time appeared Weaviate
Weaviate weaviate
Weaknesses CWE-266
CPEs cpe:2.3:a:weaviate:weaviate:*:*:*:*:*:*:*:*
Vendors & Products Weaviate
Weaviate weaviate
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Weaviate Weaviate
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-14T22:03:21.017Z

Reserved: 2026-07-02T15:38:18.928Z

Link: CVE-2026-59093

cve-icon Vulnrichment

Updated: 2026-07-06T12:26:51.493Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T11:00:05Z

Weaknesses
  • CWE-266

    Incorrect Privilege Assignment