/

CVE-2026-109567

Severity:

HIGH RISK

(7.2)

Improper Privilege Management (CWE-269) in Rapyd Admin

CVE-2026-109567

Deferred

Vulnerability type

Category:

Improper Privilege Management

CWE:

CWE-269

Impact:

Privilege Escalation

Severity:

HIGH RISK

(7.2)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Rapyd Admin contains an improper privilege management vulnerability in its UsersEdit Livewire component. A user who can edit users may assign the administrator role to their own account, potentially removing tenant and per-record authorization boundaries and enabling impersonation.

Rapyd Admin contains an improper privilege management vulnerability in its UsersEdit Livewire component. A user who can edit users may assign the administrator role to their own account, potentially removing tenant and per-record authorization boundaries and enabling impersonation.

Affected context

The issue affects Rapyd Admin deployments where the UsersEdit component permits users with the edit-users permission to submit or select role identifiers without independently enforcing whether the requested role is assignable. Roles with user-editing capabilities, including shipped operator-style roles, may provide the access needed to reach this functionality. Risk increases when tenant scoping and per-record authorization depend on the user's current role.

The issue affects Rapyd Admin deployments where the UsersEdit component permits users with the edit-users permission to submit or select role identifiers without independently enforcing whether the requested role is assignable. Roles with user-editing capabilities, including shipped operator-style roles, may provide the access needed to reach this functionality. Risk increases when tenant scoping and per-record authorization depend on the user's current role.

Exploit preconditions

  • Attack surface: The UsersEdit Livewire component and its user-role assignment workflow
  • Required access: An authenticated account with permission to edit users
  • Trigger point: Submission of a role assignment for the attacker's own account
  • Why exploitation is possible: The authorization path may validate the ability to edit the user without separately restricting assignment of the administrator role or rechecking the resulting privilege boundary
  • Attack surface: The UsersEdit Livewire component and its user-role assignment workflow
  • Required access: An authenticated account with permission to edit users
  • Trigger point: Submission of a role assignment for the attacker's own account
  • Why exploitation is possible: The authorization path may validate the ability to edit the user without separately restricting assignment of the administrator role or rechecking the resulting privilege boundary

Why this happens

The underlying bug is an authorization design failure in which permission to edit user records is treated as sufficient authority to assign any available role. The component does not adequately enforce role hierarchy, prevent self-elevation, or apply a server-side policy that distinguishes ordinary user updates from privileged role changes. This maps to CWE-269: Improper Privilege Management, because a user-controlled operation can grant privileges beyond the authority associated with the initiating account.

The underlying bug is an authorization design failure in which permission to edit user records is treated as sufficient authority to assign any available role. The component does not adequately enforce role hierarchy, prevent self-elevation, or apply a server-side policy that distinguishes ordinary user updates from privileged role changes. This maps to CWE-269: Improper Privilege Management, because a user-controlled operation can grant privileges beyond the authority associated with the initiating account.

Potential impact

  • An attacker may elevate their account to an administrator role
  • Tenant-scoping restrictions could be bypassed
  • Per-record authorization controls may be weakened or bypassed
  • An attacker could impersonate other users
  • Administrative data or functions could be accessed or modified
  • Compromised privileges could support further tenant or application compromise
  • An attacker may elevate their account to an administrator role
  • Tenant-scoping restrictions could be bypassed
  • Per-record authorization controls may be weakened or bypassed
  • An attacker could impersonate other users
  • Administrative data or functions could be accessed or modified
  • Compromised privileges could support further tenant or application compromise

General mitigation guidance

Mitigation generally focuses on enforcing privilege boundaries independently of ordinary user-edit permissions.

Common defensive patterns include:

  • Apply server-side authorization policies to every role assignment, including self-updates
  • Treat administrator-role changes as privileged operations requiring separate authorization
  • Use explicit role-assignment allowlists or role hierarchies rather than accepting arbitrary role identifiers
  • Prevent users from granting themselves or equivalent accounts higher privileges
  • Recheck tenant scope and record authorization after any role or identity change
  • Prefer secure-by-default workflows that expose only roles the acting user is authorized to assign
  • Use least-privilege service permissions and require approval or strong reauthentication for highly privileged changes
  • Record and alert on role changes, self-assignment attempts, and administrator-role grants

Mitigation generally focuses on enforcing privilege boundaries independently of ordinary user-edit permissions.

Common defensive patterns include:

  • Apply server-side authorization policies to every role assignment, including self-updates
  • Treat administrator-role changes as privileged operations requiring separate authorization
  • Use explicit role-assignment allowlists or role hierarchies rather than accepting arbitrary role identifiers
  • Prevent users from granting themselves or equivalent accounts higher privileges
  • Recheck tenant scope and record authorization after any role or identity change
  • Prefer secure-by-default workflows that expose only roles the acting user is authorized to assign
  • Use least-privilege service permissions and require approval or strong reauthentication for highly privileged changes
  • Record and alert on role changes, self-assignment attempts, and administrator-role grants

How teams detect issues like this

High-level detection can combine code analysis, review, and runtime policy controls:

  • Use static analysis to identify role assignment paths that trust submitted role identifiers
  • Review Livewire actions, controller methods, and policy checks for missing authorization on privilege changes
  • Search for user-edit permissions that implicitly allow administrator-role assignment
  • Add tests covering self-role changes, cross-tenant targets, operator-like roles, and administrator-role requests
  • Enforce policies requiring separate authorization for privileged role mutations
  • Monitor audit logs for self-promotion, unexpected administrator grants, and subsequent impersonation activity
  • Automated code review tools may help identify missing server-side authorization checks and unsafe privilege transitions

High-level detection can combine code analysis, review, and runtime policy controls:

  • Use static analysis to identify role assignment paths that trust submitted role identifiers
  • Review Livewire actions, controller methods, and policy checks for missing authorization on privilege changes
  • Search for user-edit permissions that implicitly allow administrator-role assignment
  • Add tests covering self-role changes, cross-tenant targets, operator-like roles, and administrator-role requests
  • Enforce policies requiring separate authorization for privileged role mutations
  • Monitor audit logs for self-promotion, unexpected administrator grants, and subsequent impersonation activity
  • Automated code review tools may help identify missing server-side authorization checks and unsafe privilege transitions

Sources

SourceLink
github.comgithub.com/zofe/rapyd-admin
github.comgithub.com/zofe/rapyd-admin/blob/v9.19.0/app/Modules/Auth/Livewire/UsersEdit.php#L119-L121
github.comgithub.com/zofe/rapyd-admin/commit/acd6ee85f9e5ccec67199673b039c605d161406a
github.comgithub.com/zofe/rapyd-admin/releases/tag/v9.20.0
vulncheck.comvulncheck.com/advisories/rapyd-admin-from-9.0.0-before-9.20.0-privilege-escalation-via-usersedit-component

Frequently asked

questions

Exploitation generally requires an authenticated user who has permission to edit users and can reach the affected role-assignment workflow. The exact scope depends on deployment-specific permissions and role configuration.

It can be triggered through the application's user-management interface or its underlying request flow when that functionality is exposed to the attacker. It does not necessarily require direct server or database access.

Enforce server-side authorization for role assignment separately from user-record editing. Restrict administrator-role changes to explicitly authorized principals and reject self-elevation attempts.

Model role changes as privileged operations, apply tenant and record policies after identity changes, test privilege transitions across all roles, and monitor sensitive role-assignment events.

Exploitation generally requires an authenticated user who has permission to edit users and can reach the affected role-assignment workflow. The exact scope depends on deployment-specific permissions and role configuration.

It can be triggered through the application's user-management interface or its underlying request flow when that functionality is exposed to the attacker. It does not necessarily require direct server or database access.

Enforce server-side authorization for role assignment separately from user-record editing. Restrict administrator-role changes to explicitly authorized principals and reject self-elevation attempts.

Model role changes as privileged operations, apply tenant and record policies after identity changes, test privilege transitions across all roles, and monitor sensitive role-assignment events.

Find out what's already
exploitable in your codebase.