HIGH 8.8

CVE-2026-59093: Weaviate RBAC Privilege Escalation to Admin (8.8 HIGH)

Weaviate has a privilege escalation vulnerability in its role-based access control (RBAC) system. When assigning roles to users or groups, the system fails to check whether the person doing the assigning actually has the permissions they're trying to grant. This means someone with only basic role-assignment permissions can give themselves or others the admin role, effectively taking over the entire database. The issue exists in versions before 1.38.0.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-266
Affected products
1 configuration(s)
Published / Modified
2026-07-02 / 2026-07-14

NVD description (verbatim)

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.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-59093 is a broken access control vulnerability (CWE-266) in Weaviate's RBAC implementation. The assignRoleToUser and assignRoleToGroup handlers (POST /authz/users/{id}/assign and /authz/groups/{id}/assign endpoints) perform authorization checks on whether a caller may assign roles to a target principal, but they do not validate that the assigned role's permissions are less than or equal to the caller's own permissions. This contrasts with role creation logic, which correctly enforces a permission ceiling. An authenticated user holding only the delegated assign_and_revoke_users or assign_and_revoke_groups permission can invoke these endpoints to assign high-privilege roles (including the built-in admin role) to themselves or other principals, bypassing the intended permission model and achieving full administrative access to the database.

Business impact

An attacker with minimal RBAC permissions can escalate to database administrator privileges, gaining the ability to read, modify, or delete all data; alter access controls; and disrupt service availability. In multi-tenant environments or organizations using Weaviate for sensitive data, this creates a direct path to complete data compromise and loss of confidentiality, integrity, and availability.

Affected systems

Weaviate versions prior to 1.38.0 are affected. Organizations running Weaviate with RBAC enabled and users granted assign_and_revoke_users or assign_and_revoke_groups permissions are at immediate risk.

Exploitability

Exploitability is high. The vulnerability requires only network access and valid authentication credentials (specifically, an account with role-assignment permissions). No user interaction is required, and the attack is trivial to execute—a single API call can escalate privileges. The CVSS 3.1 score of 8.8 (HIGH) reflects the low complexity (L), low privileges required (L), and network-accessible attack vector. No known public exploit is documented in the KEV catalog at this time.

Remediation

Upgrade Weaviate to version 1.38.0 or later. Before patching, apply compensating controls: restrict the assign_and_revoke_users and assign_and_revoke_groups permissions to highly trusted administrators only, and conduct an access control audit to identify accounts that hold these permissions. If RBAC is not in use, ensure it remains disabled in configuration.

Patch guidance

Vendors should verify the exact patched version against the official Weaviate release notes and security advisories. Version 1.38.0 is cited as the corrected release in the vulnerability data. Test patches in a non-production environment first to ensure no regression in role-assignment workflows. Apply the update during a maintenance window due to potential service restarts.

Detection guidance

Monitor Weaviate logs for suspicious POST requests to /authz/users/{id}/assign or /authz/groups/{id}/assign endpoints, particularly those assigning admin roles or other high-privilege roles to accounts that should not hold them. Check for role assignments by low-privilege service accounts. Conduct a periodic audit of RBAC role membership to identify unauthorized escalations. Network detection of repeated failed or anomalous role-assignment attempts may indicate reconnaissance or attack attempts.

Why prioritize this

This vulnerability merits immediate attention because it provides a direct, unauthenticated-to-admin privilege escalation path that requires no exploitation complexity. The impact scope is critical—full database compromise—and the attack surface is broad (any user with assign_and_revoke permissions). Organizations should prioritize patching or applying compensating controls within days, not weeks.

Risk score, explained

The CVSS 3.1 score of 8.8 reflects: (1) network-accessible attack vector requiring no special conditions; (2) low privilege and complexity requirements; (3) high impact across confidentiality, integrity, and availability. The vulnerability is not in the KEV catalog, indicating no known active exploitation at the time of publication, but the ease of exploitation and severity of impact justify treating this as a critical issue for Weaviate operators.

Frequently asked questions

Does this vulnerability affect Weaviate deployments with RBAC disabled?

No. If RBAC is not enabled in your Weaviate configuration, this vulnerability does not apply. However, we recommend enabling RBAC in production environments to enforce least-privilege access. Verify your configuration to confirm RBAC status.

Can I rely on network segmentation to mitigate this risk if I cannot patch immediately?

Network segmentation is a useful layer but not a complete substitute for patching. An insider or attacker with valid credentials can still escalate privileges. The most effective interim control is to strictly limit the assign_and_revoke_users and assign_and_revoke_groups permissions to only trusted administrators, combined with detailed audit logging.

Will upgrading to 1.38.0 change my existing role assignments?

Verify against the official Weaviate release notes, but typically a version upgrade focused on security validation logic should not alter existing role assignments. Test the upgrade in a staging environment to confirm no unexpected changes.

How can I audit whether this vulnerability has been exploited in my environment?

Review RBAC role assignment audit logs for the time period before your patch, looking for unexpected admin role assignments or high-privilege role grants to low-privilege accounts. Cross-reference timestamps with user login histories to identify who performed the assignments. If suspicious activity is found, conduct a full access control review and consider credential rotation for potentially compromised accounts.

This analysis is provided for informational purposes only and does not constitute legal, compliance, or professional security advice. Organizations should verify all facts, version numbers, and patch availability against official vendor advisories and their own testing. Deployment decisions should be made in consultation with your security team and risk management stakeholders. SEC.co makes no warranty as to the completeness or accuracy of this summary and disclaims liability for decisions made based solely on this content. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).